Насколько я понимаю, при использовании r может быть более элегантным использование таких функций, как lapply, а не для циклов (которые чаще всего используются в других объектно-ориентированных языках). Однако я не могу разглядеть синтаксис и делать глупые ошибки при попытке выполнить простые задачи с помощью команды. Например:Правильная реализация lapply
У меня есть ряд dataframes, загруженных из CSV-файлов, используя для loop.The следующих фиктивных dataframes адекватно описывают данные:
x <- c(0,10,11,12,13)
y <- c(1,NA,NA,NA,NA)
z <- c(2,20,21,22,23)
a <- c(0,6,5,4,3)
b <- c(1,7,8,9,10)
c <- c(2,NA,NA,NA,NA)
df1 <- data.frame(x,y,z)
df2 <- data.frame(a,b,c)
Я первый сгенерирует список имен dataframe (data_names- I сделайте это при загрузке файлов csv), а затем просто захотите суммировать столбцы. Моя попытка, конечно, не работает:
lapply(data_names, function(df) {
counts <- colSums(!is.na(data_names))
})
Я мог бы списки использования, конечно (и я понимаю, в конечном счете, это может быть лучше), однако, с педагогической точки зрения, я хотел бы понять lapply лучше.
Большое спасибо за любые указатели
Вы хотите использовать 'df' в своей функции, а не' data_names' ... – Justin
+1 для воспроизводимого примера –