对不起,我觉得有人问我这个问题,但我在这个网站上尝试了多种解决方案,但仍然不适用。我可能遗漏了一些东西。
我有一个数据帧,有300个obs和4个变量。一个变量是天数(1-300)的"天"。我试图对这些数据进行子集处理,包括第n天之前的所有数据。我已经包含了我所有的代码,以防我做错了什么。我最初从一个较大的子集中提取了一个经过转换的子集。这是我的代码的开头
Data <- data.frame(t(Original.data[1:4,]))
colnames(Data) <-c("ID","day","Week","SD")
下一行只是创建一个重复的身份证号码
Data[,1] <- Data[1,4]
最后,根据天设置我的数据。这是我尝试过的
New.Data <- Data[ which(Data$day<279),]
给出'<'对因素误差没有意义
New.Data <- Data[1:Data$day<'279']
我也尝试过这种不加引号的方法,得到了相同的"数值表达式有328个元素:只有第一个使用"错误。结果是一个空的数据帧
谢谢你,我很抱歉,如果这是一个简单的Q,我还是R 的新手
编辑:我正在包括我的数据看起来像的样本
v ID day Week SD
V1 1 -14 -2 23
V2 2 2 1 54
. . . . .
. . . . .
V56 52 279 39 42
. . . . .
. . . . .
V300 350 325 44 48
R似乎暗示Data$day是一个因子变量,而不是数字。尝试typeof(Data$day)
,看看R认为它是什么。
首先使用将其转换为字符,然后再转换为数字
Data$day <- as.numeric(as.character(Data$day))
确保当天的列是一个数字向量。例如,你可以这样做:
Data$day <- as.numeric(as.character(Data$day))
然后尝试
New.Data <- Data[ which(Data$day<279),]
如果这有帮助,请告诉我!:)