Mam listę ramek danych i dały każdy element na liście (np każda ramka danych) nazwę:Korzystanie lapply zastosować funkcję na liście ramek danych i zapisywania danych wyjściowych do plików o różnych nazwach
na przykład
df1 <- data.frame(x = c(1:5), y = c(11:15))
df2 <- data.frame(x = c(1:5), y = c(11:15))
mylist <- list(A = df1, B = df2)
Mam funkcję, którą chcę zastosować do każdej ramki danych; W tej funkcji chcę dołączyć wiersz do zapisywania wyników do pliku (ewentualnie chcę zrobić bardziej skomplikowane rzeczy, takie jak zapisywanie wykresów korelacji między dwiema zmiennymi dla każdej ramki danych, ale myślę, że zaczynam prosty)
na przykład
NewVar <- function(mydata, whichVar, i) {
mydata$newVar <- mydata[, whichVar] + 1
write.csv(mydata, file = i)
}
chcę użyć lapply()
zastosować tę funkcję do każdej ramki danych w moim liście
coś takiego:
hh<-lapply(mylist, NewVar, whichVar = "y")
nie mogę dowiedzieć się, jak przypisać „ja” w kontekście lapply, aby i
iterowało nad nazwami na liście ramek danych, zapisując wiele plików o różnych nazwach (w tym przypadku dwóch plikach o nazwach A
i B
), które odpowiadają zmodyfikowanemu klatki ta.
wiem powiedziałeś starasz się unikać za pomocą pętli for ale myślę, że w tym przypadku warto użyć pętli for. Nie lubię używać 'lapply()' jeśli nic nie jest zwracane. Coś w rodzaju 'l_ply()' z pakietu 'plyr' jest prawdopodobnie bardziej odpowiednie. Lub po prostu pętlę for. – MadScone