r - 如何将数据框中的连续值一起粘贴到新列中
问题描述
我想将数据框中的连续值粘贴到同一数据框中的新列中。
我的数据框是这样的:
X | 是的 |
---|---|
蓝色的 | A234 |
绿色,黑色 | A5 |
黄色 | A6 |
蓝色,绿色,紫色 | A7 |
我想要第三列'z',它将值粘贴到'x'中,如下所示:
X | 是的 | z |
---|---|---|
蓝色的 | A234 | 蓝色的 |
绿色,黑色 | A5 | 蓝色,绿色,黑色 |
黄色 | A6 | 蓝色,绿色,黑色,黄色 |
蓝色,绿色,紫色 | A7 | 蓝色,绿色,紫色,蓝色,绿色,黑色,黄色 |
解决方案
在tidyverse
中,这可以通过accumulate
和paste/str_c
library(dplyr)
library(purrr)
library(stringr)
df1 %>%
mutate(z = accumulate(x, str_c, sep=","))
-输出
# x y z
#1 blue A234 blue
#2 green,black A5 blue,green,black
#3 yellow A6 blue,green,black,yellow
#4 blue,green,purple A7 blue,green,black,yellow,blue,green,purple
或类似的选项Reduce
frombase R
Reduce(function(...) paste(..., sep=","), df1$x, accumulate = TRUE)
数据
df1 <- structure(list(x = c("blue", "green,black", "yellow", "blue,green,purple"
), y = c("A234", "A5", "A6", "A7")), class = "data.frame", row.names = c(NA,
-4L))
推荐阅读
- java - 如何使用千分尺的@Timed 来捕获未来的指标
- selenium - Maven 构建 - 下载源代码和 javadoc (Sleeping) OK
- uefi - 如何将 iPXE 嵌入到基于 EDK2 的 UEFI 固件中?
- javascript - 如何重定向到 Nuxt 中的另一条路径?
- java - 无法使用谷歌云功能调用外部 http URL
- express - 以正确的方式在 expressjs 中结束自定义错误处理程序中的响应
- python - 为什么 xlsxwriter 在我的单元格开头写 '
- javascript - 猫鼬更新文档
- exec - 如何在 exec 中使用夹具元素?柏
- node.js - 找到形状轮廓后的遮罩