R:通过匹配变量列名来计算行数

时间:2014-11-08 21:45:04

标签: r

我在计算与data.frame的某一列中某个值匹配的行时,尝试使用变量作为列名;例如;

matches <- 0
cols <- c("B1","B2","B3","S1")
for (i in length(cols)) {
    matches <- matches + nrow(dt[cols[i]=="some value"]) 
}

我也试过子集但没有成功:

nrow(subset(dt, cols[i]=="some value"))

关于我如何做到这一点的任何建议?

2 个答案:

答案 0 :(得分:0)

您需要使用get将字符串转换为变量名称

nrow(subset(dt, get(cols[i])=="some value"))

答案 1 :(得分:0)

我不确定dt的类是什么。从你上面的内容来看,我猜它会是data.frame

在您的代码中,最让我感到困惑的是subset(dt, cols[i]=="some value")dt[cols[i]=="some value"]

我想colsdt colnames ,您想要计算"some value"dt的频率。

你可以试试这个,

length(dt[dt=="some value"]) 

或具体指定dt

的列
subdt <- dt[,cols]
length(subdt[subdt == "some value"])
希望它会有所帮助。