R 在Subset()中使用范围的字符/强制范围从字符到数字
我正在努力让subset()函数使用一个范围(即4:7),该范围作为变量中的字符调用 是否有一种方法可以强制输入为数值,即变量DayVar,并且具有我希望函数子集的不同日期,同时避免以下问题: 1.)保持4:7,而不是4、5、6、7和 2.)将字符“1:4”转换为数字格式,子集计算可以将其用作1:4 以下是一个示例数据框:R 在Subset()中使用范围的字符/强制范围从字符到数字,r,subset,R,Subset,我正在努力让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"
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])
}
DayVar=c(“1”、“2”、“3”、“4:7”)
a正如最近的邮件所建议的,列表是有效的,但您必须更改DayVar引号以获取列表索引:
DayVar <- list(1,2,3,4:7)
Subset <- list()
for(i in 1:length(DayVar)){
Subset[[i]] = subset(df, Day %in% DayVar[[i]])
}
DayVar您可能想在列表上循环-DayVar您真的被迫将这些值保留为字符串吗?或者您选择以何种方式存储它是有原因的?当DayVar=c(1,2,3,4:7)时,它将其转换为c(1,2,3,4,5,6,7),因此该函数提取七个数据子集,而不是四个(第四个包括所有的第4,5,6和7天)。