Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.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
在data.frame中查找部分匹配的名称时,需要对其进行排序_R - Fatal编程技术网

在data.frame中查找部分匹配的名称时,需要对其进行排序

在data.frame中查找部分匹配的名称时,需要对其进行排序,r,R,我想在给定一系列(部分)变量名的data.frame中查找变量索引。例如: df <- data.frame(var = c("az","bz","cz"), stringsAsFactors = FALSE) 这在第一个示例中有效。对于第二个示例,此操作失败: v <- c("b > a") df$var[grep(paste(trimws(unlist(strsplit(v, ">"))), collapse = "|"), df$var)] [1] "az" "b

我想在给定一系列(部分)变量名的
data.frame
中查找变量索引。例如:

df <- data.frame(var = c("az","bz","cz"), stringsAsFactors = FALSE)
这在第一个示例中有效。对于第二个示例,此操作失败:

v <- c("b > a")
df$var[grep(paste(trimws(unlist(strsplit(v, ">"))), collapse = "|"), df$var)]
[1] "az" "bz"

v如果不通过正则表达式(
b | a
)进行操作,并将它们作为从
strsplit()
函数派生的向量,即
c(2,1)
,那么通过循环并使用
grep
,您可以得到正确的顺序,即

df$var[sapply(trimws(unlist(strsplit(v, ">"))), function(i)grep(i, df$var))]
#[1] "bz" "az"

如果您不通过正则表达式(
b | a
)执行此操作,并将它们作为从
strsplit()
函数派生的向量,即
c(2,1)
,那么通过循环并使用
grep
,您可以获得正确的顺序,即

df$var[sapply(trimws(unlist(strsplit(v, ">"))), function(i)grep(i, df$var))]
#[1] "bz" "az"
df$var[sapply(trimws(unlist(strsplit(v, ">"))), function(i)grep(i, df$var))]
#[1] "bz" "az"