根据另一列将单个列分成多个列

时间:2017-11-17 02:58:01

标签: r tidyr

我有一个整洁的数据框,每行有一个术语和主题。它看起来像这样:

num_topic, term
1, blue
1, green
2, dog
2, cat

我想将每个主题安排在一个单独的专栏中,以便人类可读性

topic1, topic2
blue, dog
green, cat

这看起来非常直观,但我无法弄清楚如何做到这一点。它与链接的问题不同,因为每个术语没有唯一的标识符。每个主题都有一系列术语。

1 个答案:

答案 0 :(得分:2)

以下内容如何? 请注意,这假设每个num_topic组的条目是"顺序为",即blue属于doggreen属于cat,等等。

df <- read.csv(text = 
    "num_topic,term
    1,blue
    1,green
    2,dog
    2,cat");

df <- as.data.frame(sapply(split(df, df$num_topic), function(x) x$term));
df;
#       1    2
#1   blue  dog
#2  green  cat

说明:在num_topic上拆分并将列term绑定在一起。