r - 融化数据框和拆分值

标签 r

我有以下数据框,其中测量值连接成一列,由一些分隔符分隔:

df <- data.frame(v1=c(1,2), v2=c("a;b;c", "d;e;f"))
df
     v1 v2
  1  1  a;b;c
  2  2  d;e;f;g

我想将其融化/转换成以下格式:

     v1 v2
  1  1  a
  2  1  b
  3  1  c
  4  2  d
  5  2  e
  6  2  f
  7  2  g

有没有优雅的解决方案?

谢谢!

最佳答案

您可以使用 strsplit 拆分字符串。

拆分第二列中的字符串:

splitted <- strsplit(as.character(df$v2), ";")

创建一个新的数据框:

data.frame(v1 = rep.int(df$v1, sapply(splitted, length)), v2 = unlist(splitted))

结果:

  v1 v2
1  1  a
2  1  b
3  1  c
4  2  d
5  2  e
6  2  f

关于r - 融化数据框和拆分值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13808553/

相关文章:

r - 解压并重新排列数据

r - 为什么 dplyr::mutate 函数给出了错误的答案?

r - 根据特定列中的数据框条目添加新列的最快方法是什么

r - quantmod::chart_Series() 错误?

python - 在 R [Inf] 和 Python 中处理大量数字

r - 使用雅虎财经数据测试两只股票的协整

r - 基于条件的部分粗体ggplot2指南标签

r - 获取另一个向量中数字的索引

r - 根据多个引用日期计算每个客户的事件发生次数

r - 用大数据估算列平均值的最快方法