为什么在使用which()函数时输出整数(0)?

问题描述 投票:0回答:1

我试图确定我的V1列中哪些变量在V5列中的值在95-105范围内,并且V6列中的值在7-13范围内。我正在使用哪个函数并尝试在变量x下的V1中存储变量的名称,但我不断得到输出整数(0)或字符(0),我不知道这意味着什么。我的代码图片如下。

enter image description here

r which
1个回答
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(),它打印有关从数据集推断出的类的信息。特别是,任何拼写错误您的数据使得条目不是有效数字(额外小数点,缺少值,例如“?”未被识别为缺失等)将使R将整个列解释为字符(因为您已设置stringsAsFactors=FALSE)而不是数字变量。

如果你想强制列2-14为数字,你可以使用df[-1] <- lapply(df[-1], as.numeric)但是,更好的做法是找到并修复上游的任何问题...

© www.soinside.com 2019 - 2024. All rights reserved.