Что касается понижения, я не могу знать, но я могу догадаться.Вы использовали функции, которые не являются базовыми R, без выдачи library
вызовов для пакетов, которые их содержат, и вы создали свой примерный фрейм данных расточительным и, возможно, опасным образом, используя без необходимости cbind
и as.data.frame, где один data.frame
звонок был бы эффективнее, безопаснее и выразительнее.
cbind(as.Date("1970-01-01")) # causes loss of attributes including class
# [,1]
#[1,] 0
c(factor("a"))
#[1] 1
Вот как правильно создать пример, подобный вашему:
df <- data.frame( a = c(rep(NA, 100), seq(0,99)) ,
b = c(seq(0,99), rep(NA, 100)))
И вы можете получить столбец или объект, имя которого у вас есть в векторе символов, с помощью get
(при условиичто есть соответствующий
columns <- c("a", "b")
library(dplyr)
for (j in columns){
df %>% filter(!is.na( get(j) )) %>% print()
}