使用一串列名称设置数据框

时间:2015-10-15 11:22:17

标签: r

我需要通过我创建的一系列列名称对数据帧(df)进行子集化 - 不确定如何将其注入到子域中。?

例如

colstoKeep is a character string:
"col1", "col2", "col3", "col4"

如何将其推入子集函数

df<- df[colstoKeep]

我确信这很容易。?因为上述方法不起作用。

2 个答案:

答案 0 :(得分:0)

df  <- data.frame(A=seq(1:5),B=seq(5:1),C=seq(1:5))
df
  A B C
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 5

cols_to_keep  <- c("A","C")
df[,cols_to_keep]
  A C
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5

答案 1 :(得分:0)

curl -XPOST 'localhost:9200/schoolrecords/_close'
curl -XPUT 'localhost:9200/schoolrecords/_settings' -d '{
"analysis" : {
    "analyzer" : {
        "synonym" : {
            "tokenizer" : "whitespace",
            "filter" : ["synonym"]
        }
    },
"filter" : {
            "synonym" : {
                "type" : "synonym",
                "synonyms_path" : "synonym.txt",
                "ignore_case" : true
            }
        }
    }
}'
curl -XPOST 'localhost:9200/schoolrecords/_open'

如果我正确理解您的问题,您的df <- data.frame(A=seq(1:5),B=seq(5:1),C=seq(1:5)) df colsToKeep <- "\"A\", \"C\"" 变量就是上面给出的字符串。为了提取变量,您必须将其转换为向量。如果我使用了正确的格式,您可以使用以下代码执行此操作。

colsToKeep

但是,如果我也理解你有一个折叠成字符串的向量(library(magrittr) colsToKeepVector <- strsplit(colsToKeep, ",") %>% unlist() %>% trimws() %>% gsub("\"", "", .) df[colsToKeepVector] ?),我强烈建议你这样做。

(编辑为匹配问题中的字符串格式)