String 使用行索引字符串对R中的数据帧子集

String 使用行索引字符串对R中的数据帧子集,string,r,indexing,String,R,Indexing,我有一个大的数据帧,需要根据另一个表(从R外部)中的一列中提供的行索引字符串对其进行子集。这些字符串包括几种类型的索引(例如c(1,3)、c(1:10,15)、3:10),但都是R可以接受的格式。我在这里提供了一个小示例,但实际上索引通常指的是非常大的数据帧中的大行块,因此如果可能的话,我希望坚持使用这种方法 示例数据: my.df<-data.frame(group=c("a","a","b","b","c","c"),value=c(1,5,5,15,20,3)) set1<-

我有一个大的数据帧,需要根据另一个表(从R外部)中的一列中提供的行索引字符串对其进行子集。这些字符串包括几种类型的索引(例如c(1,3)、c(1:10,15)、3:10),但都是R可以接受的格式。我在这里提供了一个小示例,但实际上索引通常指的是非常大的数据帧中的大行块,因此如果可能的话,我希望坚持使用这种方法

示例数据:

my.df<-data.frame(group=c("a","a","b","b","c","c"),value=c(1,5,5,15,20,3))

set1<-"c(1,3)"

set2<-"c(1:3,5)"

我可以成功地将索引字符串读入R,并将其转换为与上述代码完全相同的形式,但在子集设置方面没有成功。我相信这是一个简单的技巧,因此非常感谢您的帮助。

可能是类似的

 my.df[eval(parse(text=set1)),]

问题是c(…)周围的引号这会将整个内容转换为字符串。只需删除引号,使其成为
set1Sorry JeremyS,我应该澄清引号的原因是这是从外部表中读取的文本。下面iugrina的建议解决了问题。谢谢,NickThanks。解决了我的问题!
 my.df[eval(parse(text=set1)),]