Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在Subset()中使用范围的字符/强制范围从字符到数字_R_Subset - Fatal编程技术网

R 在Subset()中使用范围的字符/强制范围从字符到数字

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"

我正在努力让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])
}
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天)。