【发布时间】:2018-02-27 09:53:30
【问题描述】:
我有一个来自大型 MySQL 表的数据框“d1”。我需要找到一个未使用的列(仅包含 NA 或空字符串)。 (见问题Find columns with all missing values)。
这似乎工作正常:
allmisscols <- apply(d1,2, function(x)all(is.na(x)));
colswithallmiss <-names(allmisscols[allmisscols>0]);
cat( colswithallmiss,sep="\n");
...
allmisscols <- apply(d1,2, function(x)all(x==''));
colswithallmiss <-names(allmisscols[allmisscols>0]);
cat( colswithallmiss,sep="\n");
...
虽然第二个在列名中也给出了“NA”;我不明白为什么。
但是当我尝试将它们结合起来时:
allmisscols <- apply(d1,2, function(x)all(is.na(x)||x=='') );
colswithallmiss <-names(allmisscols[allmisscols>0]);
print("the columns with all values missing");
print(colswithallmiss);
我在结果中看到一列实际上包含我的表中的值!
同样给出以下内容:
库(字符串); sapply(d1, function(x)all(any(is.na(x)||(str_trim(x)==""))))
所以我的问题是:
- 为什么我会得到如此意想不到的结果?
- 如何获取仅包含空 OR N/A 值的列列表?
【问题讨论】: