我正在努力让subset()函数使用一个范围(即4:7),该范围被称为变量中的一个字符。
我是否有办法强制输入,即变量DayVar,并且我希望函数子集的不同日期是数字,同时避免以下问题:
1。)保持4:7而不是4,5,6,7和
2。)将字符“1:4”转换为数字格式,子集评估可以使用它,就像它是1:4一样。
以下是一个示例数据框:
DayVar = c("1", "2", "3", "4:7")
a <- c("a", "b", "c", "d", "e", "f", "g", "h", "i", "j")
b <- c(61:70)
Day <- c(1:10)
df <- data.frame("a" = a, "b" = b, "Day" = Day)
Subset <- list()
for(i in 1:length(DayVar)){
Subset[[i]] = subset(df, Day %in% DayVar[i])
}
答案 0 :(得分:1)
由于thelatemail建议列表有效但您必须更改DayVar引号以获取列表索引:
DayVar <- list(1,2,3,4:7)
Subset <- list()
for(i in 1:length(DayVar)){
Subset[[i]] = subset(df, Day %in% DayVar[[i]])
}