我正在使用函数内的数据框,我在syntaxis中遇到了问题。这是我正在使用的框架:
c
id nobs
1 1 117
2 2 1041
3 3 243
4 4 474
5 5 402
6 6 228
7 7 442
8 8 192
9 9 275
10 10 148
这是我正在使用的代码。
threshold=250
c
for (i in c[1]){
if(threshold > any(c[i,2])){
print(c[i,1])
}
}
我想要的是获取数据框的第一个元素是满足条件,但我得到结果: [1] 1 2 3 4 5 6 7 8 9 10.只需要:1 3 6 8 10
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:1)
使用which
c[which(c$nobs<250),1]
答案 1 :(得分:0)
subset(c, nobs > threshold)
答案 2 :(得分:0)
不确定:
#df is your dataframe
选项1:
with(df,ifelse(nobs<250,lag(id,1),NA))
[1] 1 NA 3 NA NA 6 NA 8 NA 10
选项2:
df[df$nobs<250,"id"]
[1] 1 3 6 8 10
答案 3 :(得分:0)
让我们调用您的data.frame x
以避免函数名称c
发生冲突。
遵循您的语法,它应该是:
for (i in seq_len(nrow(x))){
if(threshold > x[i,2]){
print(x[i,1])
}
}
或者简单地说,
x[x[,2] < threshold, 1]