2012-04-06 35 views
1

我加載一個表是這樣的:在R中,我如何遍歷表中的列並根據列名執行計算?

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

我可以計算出空白項的比例在COLUMN1_NAME列像這樣:

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

但是我有很多列。我想要一種方式來循環拋出並計算每個列的百分比,而不是複製並粘貼上面的行並手動更改列名。我很新R,所以任何幫助表示讚賞。

回答

2

使用數字而不是名稱的方括號。

i <- 1 

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

等等

?Extract。你也可以以編程方式獲得的名稱,並與工作,但它只是一個額外的步驟:

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

您可能還需要的,而不是'==',因爲它是更多地延伸到匹配反對在%考慮'%'向量。 – 2012-04-06 21:35:30