使用lapply列出R中每列中空变量的百分比

马修·里廷豪斯

我得到了一个大的csv,它包含115列和1000行。列中包含各种数据,有些是基于字符的,有些是整数等。但是,数据中有很多不同类型的空变量(NA,-999,NULL等)。

我想做的是编写一个脚本,该脚本将生成一个列列表,其中列中超过30%的数据是某种类型的NULL。

为此,我编写了一个脚本来为我提供一列的空百分比(以十进制表示)。这个脚本对我来说很好用。

length(which(indata$ObservationYear == "" | is.na(indata$ObservationYear) |
indata$ObservationYear == "NA" | indata$ObservationYear == "-999" |
indata$ObservationYear == "0"))/nrow(indata)

我想编写一个脚本来对所有列执行此操作。我相信我需要使用lapply函数。

我尝试在此处执行此操作,但是,我似乎根本无法使该脚本正常工作:

Null_Counter <- lapply(indata, 2, length(x),
                   length(which(indata == "" | is.na(indata) | indata == "NA" | indata == "-999" | indata == "0")))
                   names(indata(which(0.3>=Null_Counter / nrow(indata))))

我收到以下错误:

Error in match.fun(FUN) : '2' is not a function, character or symbol

和:

Error: could not find function "indata"

理想情况下,我要给我的是所有列名称的向量列表,其中所有空变量(NA,-999、0,NULL)的百分比都超过30%。

有人可以帮忙吗?

yuanhangliu1

我相信您想使用apply而不是lapply将函数应用于列表。试试这个:

Null_Counter <- apply(indata, 2, function(x) length(which(x == "" | is.na(x) | x == "NA" | x == "-999" | x == "0"))/length(x))
Null_Name <- colnames(indata)[Null_Counter >= 0.3]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

计算每列中丢失的字符串变量的百分比

来自分类Dev

在R中使用lapply遍历列时计算行值的百分比变化

来自分类Dev

计算R中每列的负数,0和正值的数量和百分比

来自分类Dev

使用dplyr计算每列中NA的百分比

来自分类Dev

如何使用Pandas Groupby计算每列中总计的百分比

来自分类Dev

在R中动态计算列的百分比

来自分类Dev

如何计算r中的列百分比

来自分类Dev

R中的绘图百分比

来自分类Dev

如何计算每一列的百分比?

来自分类Dev

Python:结合groupby计算MultiIndex DataFrame中每列的百分比变化

来自分类Dev

如何在图中显示数据框中每列的最高百分比

来自分类Dev

R - 使用百分比(可格式化)强制列出对象

来自分类Dev

InfluxDB中的百分比百分比

来自分类Dev

InfluxDB中的百分比百分比

来自分类Dev

R:各组变量的百分比交互作用

来自分类Dev

$ PATH环境变量中的百分比

来自分类Dev

CSS ID中的百分比变量

来自分类Dev

在SQL变量上使用百分比符号的问题

来自分类Dev

如何在多个变量列中查找最大组百分比

来自分类Dev

在R中,如何计算不同变量给定的因子百分比?

来自分类Dev

获取字符变量的百分比并在 R 中重新分组小部件

来自分类Dev

R 中带有百分比的分类变量表

来自分类Dev

按列中的值添加百分比列

来自分类Dev

使用 Dplyr 的变量中 2 个响应的百分比

来自分类Dev

R:删除缺少某些百分比值的列

来自分类Dev

R dplyr计算组和列的百分比

来自分类Dev

中间变量百分比

来自分类Dev

SQL中同一列的百分比

来自分类Dev

从是/否列获取Tableau中的百分比