我有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中选择多个元素。
答案 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