使用mutate从命名向量输出值

时间:2017-10-09 20:34:39

标签: r dplyr mutate

我有1X2数据帧,其值为'sent1'和'sent2'。

i

我还有一个参考向量,其中包含2个句子和3个类别(a,b,c)组合的值。

test.df <- data.frame(sentence = c('sent1', 'sent2'))

我想创建一个看起来像这样的新df:

test.vec <- c(sent1_a = 1, 
         sent1_b = 0, 
         sent1_c = 1,
         sent2_a = 0,
         sent2_b = 1,
         sent2_c = 1)

理想情况下,我想使用mutate根据我循环的相应句子从矢量中选择相关值

output.df <- data.frame(sentence = c('sent1', 'sent2'),
                    a = c(1,0),
                    b = c(0,1),
                    c = c(0,1))

output.df
#  sentence a b c
#1    sent1 1 0 0
#2    sent2 0 1 1

但是,我收到了错误。

  

mutate_impl(.data,dots)中的错误:     评估错误:尝试在vectorIndex中选择多个元素。

1 个答案:

答案 0 :(得分:1)

您可以将test.vec重新塑造为您需要的输出:

library(tidyverse)
data.frame(test.vec) %>% 
    tibble::rownames_to_column() %>% 
    separate(rowname, c('sentence', 'vars')) %>% 
    spread(vars, test.vec)

#  sentence a b c
#1    sent1 1 0 1
#2    sent2 0 1 1
相关问题