R 基于另一列将单列转换为多列
我有一个整洁的数据框架,每行有一个术语和主题。看起来是这样的:R 基于另一列将单列转换为多列,r,tidyr,R,Tidyr,我有一个整洁的数据框架,每行有一个术语和主题。看起来是这样的: num_topic, term 1, blue 1, green 2, dog 2, cat 为了便于阅读,我想把每个主题安排在一个单独的专栏中 topic1, topic2 blue, dog green, cat 这看起来很直观,但我不知道怎么做。这与链接问题不同,因为每个术语都没有唯一的标识符。每个主题都有一个术语列表。以下内容如何。 注意:这假设每个num_topic组的条目是“有序”的,即蓝色的属于狗的,绿色的属于猫的
num_topic, term
1, blue
1, green
2, dog
2, cat
为了便于阅读,我想把每个主题安排在一个单独的专栏中
topic1, topic2
blue, dog
green, cat
这看起来很直观,但我不知道怎么做。这与链接问题不同,因为每个术语都没有唯一的标识符。每个主题都有一个术语列表。以下内容如何。
注意:这假设每个num_topic
组的条目是“有序”的,即蓝色的属于狗的,绿色的属于猫的,依此类推
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
df这叫做数据透视谢谢,非常接近!但问题是,我只想要主题栏。主题中的每个术语都没有唯一的标识符。@Adam_G那么您能添加一个临时标识符吗?e、 类似于df%%>%groupby(num\u topic)%%>%mutate(id=seq(1,n())%%>%ungroup()%%>%spread(num\u topic,term)%%>%select(-id)
或使用unstack(df,term~num\u topic)
@akrun your win;-)绝对是最短的解决方案!