我试图确定我的V1列中哪些变量在V5列中的值在95-105范围内,并且V6列中的值在7-13范围内。我正在使用哪个函数并尝试在变量x下的V1中存储变量的名称,但我不断得到输出整数(0)或字符(0),我不知道这意味着什么。我的代码图片如下。
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()
,它打印有关从数据集推断出的类的信息。特别是,任何拼写错误您的数据使得条目不是有效数字(额外小数点,缺少值,例如“?”未被识别为缺失等)将使R将整个列解释为字符(因为您已设置stringsAsFactors=FALSE
)而不是数字变量。
如果你想强制列2-14为数字,你可以使用df[-1] <- lapply(df[-1], as.numeric)
但是,更好的做法是找到并修复上游的任何问题...