拆分列中的分隔字符串并作为新行插入 [英] Split delimited strings in a column and insert as new rows
本文介绍了拆分列中的分隔字符串并作为新行插入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个数据框如下:
+-----+-------+
| V1 | V2 |
+-----+-------+
| 1 | a,b,c |
| 2 | a,c |
| 3 | b,d |
| 4 | e,f |
| . | . |
+-----+-------+
每个字母都是一个用逗号分隔的字符.我想在每个逗号上拆分 V2 并将拆分的字符串作为新行插入.例如,所需的输出将是:
Each of the alphabet is a character separated by comma. I would like to split V2 on each comma and insert the split strings as new rows. For instance, the desired output will be:
+----+----+
| V1 | V2 |
+----+----+
| 1 | a |
| 1 | b |
| 1 | c |
| 2 | a |
| 2 | c |
| 3 | b |
| 3 | d |
| 4 | e |
| 4 | f |
+----+----+
我尝试使用 strsplit()
先吐出 V2,然后将列表转换为数据框.它没有用.任何帮助将不胜感激.
I am trying to use strsplit()
to spit V2 first, then cast the list into a data frame. It didn't work. Any help will be appreciated.
推荐答案
这是另一种方法..
df <- read.table(textConnection("1|a,b,c
2|a,c
3|b,d
4|e,f"), header = F, sep = "|", stringsAsFactors = F)
df
## V1 V2
## 1 1 a,b,c
## 2 2 a,c
## 3 3 b,d
## 4 4 e,f
s <- strsplit(df$V2, split = ",")
data.frame(V1 = rep(df$V1, sapply(s, length)), V2 = unlist(s))
## V1 V2
## 1 1 a
## 2 1 b
## 3 1 c
## 4 2 a
## 5 2 c
## 6 3 b
## 7 3 d
## 8 4 e
## 9 4 f
这篇关于拆分列中的分隔字符串并作为新行插入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文