在R中,我如何循环表中的列并根据列名执行计算?

时间:2012-04-06 21:21:34

标签: r loops

我正在加载这样一个表:

mydata <- read.table("c:\\file.tab", header=TRUE, sep="\t", quote="\"")

我可以像下面这样计算COLUMN1_NAME列中空白条目的百分比:

sum(mydata$COLUMN1_NAME == "")/nrow(mydata)

但我有很多专栏。我想要一种循环抛出并计算每列的百分比的方法,而不是复制和粘贴上面的行并手动更改列名。我非常擅长 R ,所以我们非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

使用带数字而不是名字的方括号。

i <- 1

sum(sum(mydata[[i]] == "")/nrow(mydata)

等。

请参阅?Extract。此外,您可以通过编程方式获取名称并使用这些名称,但这只是一个额外的步骤:

i <- 1
nms <- names(mydata)
sum(mydata[[nms[i]]] == "")/nrow(mydata)