对不起,我觉得有人问过这个问题,但是我在此站点上尝试了多种解决方案,但仍然对我不起作用。我可能会丢失一些东西。
我有一个带300个obs和4个变量的data.frame。一个变量是天的天数(1-300),我试图制作此数据的子集,包括第n天之前的所有数据。我已包括所有代码,以防万一我做错了什么。我最初从较大的子集中获取了转换后的子集。这是我的代码的开头
Data <- data.frame(t(Original.data[1:4,]))
colnames(Data) <-c("ID","day","Week","SD")
下一行只是用于创建重复的ID号
Data[,1] <- Data[1,4]
最后,根据日期对我的数据进行子设置。这是我尝试过的一切
New.Data <- Data[ which(Data$day<279),]
给出“ <”对因子错误没有意义
New.Data <- Data[1:Data$day<'279']
我也尝试了不使用引号的方法,并得到相同的“数值表达式具有328个元素:仅第一个使用”错误。结果是一个空的data.frame
谢谢,如果这是一个简单的问题,我深表歉意,我还是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
答案 0 :(得分:1)
R似乎暗示Data $ day是一个因子变量,而不是数字。尝试typeof(Data$day)
看看R认为是什么。
首先使用以下命令将其转换为字符,然后转换为数字:
Data$day <- as.numeric(as.character(Data$day))
答案 1 :(得分:0)
确保day列是数字矢量。例如,您可以执行以下操作:
Data$day <- as.numeric(as.character(Data$day))
然后尝试
New.Data <- Data[ which(Data$day<279),]
让我知道这是否有帮助! :)