我正在尝试确定我的V1列中的哪些变量在V5列中的值在95-105范围内,在V6列中的值也在7-13范围内。我正在使用which函数,并尝试将变量的名称存储在V1中的变量x下,但是我一直在获取输出integer(0)或character(0),但我不确定这是什么意思。我的代码的图像附在下面。
答案 0 :(得分:2)
integer(0)
表示数据框中没有没有个满足条件的元素。 (您可以尝试
with(df, any(95 <= V5 & V5 <= 105 &
13 <= V6 & V6 <= 17))
(根据@ H1的注释进行编辑,以匹配您的描述而不是您的代码);稍微重新排列以近似R的解析器无法处理的A < B < C
语法...)
您可能应该检查str(df)
和/或summary(df)
(或sapply(df, class)
),以确保确实按预期方式读入了数据框(或使用dplyr::read_csv()
,它会打印有关从数据集中推断出的类的信息。尤其是,数据中输入 not 的任何错别字都是有效数字(小数点后加,缺少诸如“?”之类的值)识别为丢失等),将使R将整列解释为字符(因为您已设置stringsAsFactors=FALSE
)而不是数字变量。
如果您希望将第2-14列强制为数字列,则可以使用df[-1] <- lapply(df[-1], as.numeric)
,这是查找并解决上游任何问题的更好实践...