4 ms·
How do I apply a function to every element of a data frame where that function takes as input the i,j indices of the element along with its value? This is a pr
by stoops 7y ago
How do I apply a function to every element of a data frame where that function takes as input the i,j indices of the element along with its value?
This is a problem I struggled on for weeks in college. Eventually having to hack something together that relied on modifying the underlying data frame.
I've not return to R since as python has always had better libraries and easier to deploy.
- ksevastyanenko 7y agoIn R you'd typically want to operate over vectors (rows or columns, with columns being the faster option) rather than on individual values. This requires a bit of a mental shift when you come to R from a C/Cuda background or even python. You can find the man pages right in R console - look up `?lapply` for column-wise operations and `?apply` for row-wise. When it comes to data.frame transformations you are typically better off using packages from `hadleyverse` - check https://github.com/hadley/reshape https://github.com/hadley/reshape and https://tidyr.tidyverse.org/ https://tidyr.tidyverse.org/ Of course, what's important is not the technology used, but the problem solved. Fantastic that python works for you.
- anthony_doan 7y agoYou use one of the family of `apply` function.
- mpjdem 7y agoIf you need i,j indices to solve your problem you should probably not be using a data.frame but a matrix type.
- anthony_doan 7y agoIf he/she chose to use dataframe then the data is probably multiple type. Matrix data structure can only have one type.