同一行中的变量分开,除以;根据R中的另一列

时间:2018-10-08 22:58:59

标签: r

我是R语言的初学者,现在我对正在使用的数据框有疑问。

我有一些专栏,提供了一些调查的答案。以下是两列:

OperatingSystem    LanguageWorkedWith
Linux              C;C++;C#
Windows            Java; JavaScript
Mac                C
Linux              C#

并且需要根据操作系统将其分为几行(也分为两列:OperatingSystem和LanguageWorkedWith):

Linux   C
Linux   C++

以此类推...抱歉,如果问题重复,我只是无法找到解决方案。

1 个答案:

答案 0 :(得分:0)

tidyr软件包中的

separate_rows可以做到这一点。

library(dplyr)
library(tidyr)

DF %>% separate_rows(LanguageWorkedWith, sep = ";")

给予:

  OperatingSystem LanguageWorkedWith
1           Linux                  C
2           Linux                C++
3           Linux                 C#
4         Windows               Java
5         Windows         JavaScript
6             Mac                  C
7           Linux                 C#

注意

可重复使用的输入为:

Lines <- "OperatingSystem - LanguageWorkedWith
Linux - C;C++;C#
Windows - Java; JavaScript
Mac - C
Linux - C#"
DF <- read.table(text = Lines, header = TRUE, sep = "-", strip.white = TRUE, comment = "")