r - 如果来自另一列的值相同,则粘贴来自不同行的字符串值
问题描述
我想dataframe
在现有的基础上创建一个新的。正如标题所示,如果另一列中的值相等,我希望paste
某一列中的所有字符串值。
由于我的写作技巧很差,我想我不太清楚我的意思是什么。为了澄清,我创建了一个示例。
现有数据框
如果我有这样的事情:
DF <- data.frame(
ID = c(1,2,2,3,3,3,4,4,4,4),
value = c("I","ate","cereals","for","breakfast","it","was","delicious","!!!",":)"))
新数据框
我想创建这样的东西:
DF2 <- data.frame(
ID = c(1,2,3,4),
value = c(paste("I"), paste("ate","cereals"), paste("for","breakfast","it"), paste("was","delicious","!!!",":)")))
当column 中的所有字符串具有相同的值时,value
将使用它们进行合并。我在构建一个可以做到这一点的函数时遇到了麻烦。请你帮助我好吗。paste
ID
我对dplyr
或感到满意data.table
。
解决方案
在dplyr
你可以group_by
使用summarise
DF %>%
group_by(ID) %>%
summarise(value = paste(value, collapse = " "))
## A tibble: 4 x 2
# ID value
# <dbl> <chr>
#1 1. I
#2 2. ate cereals
#3 3. for breakfast it
#4 4. was delicious !!! :)
推荐阅读
- augmented-reality - 使用 iPad LiDAR 并将网格导入 RealityKit
- node.js - How to active CORS in firebase functions with NestJs
- swift - 使用 replaceCurrentItem() 时 AVPlayer 闪烁 - Swift - 以编程方式
- javascript - 我如何必须在这里使用 gotoAndStop() ?
- environment-variables - Azure 函数中的 Environment.SetEnvironmentVariable
- c++ - 满足 IF 语句时替换字符串数组中的字符
- r - R::无论列顺序如何,我如何将一个矩阵的行与另一个矩阵的行匹配?
- javascript - 我尝试在此 Firestore 事务中删除一个值并设置一个值但不工作
- r - 用于业务分析目的的 R 仪表板
- sql - 减去 SQL 中的时间戳以按小时提供时间