gpt4 book ai didi

r - 从数据框中的两个字符类型行的组合创建一个新行

转载 作者:行者123 更新时间:2023-12-04 12:00:55 25 4
gpt4 key购买 nike

我有以下数据集的更大版本。

mydata <- data.frame("C1" = c("EB", "L", 1, 2, 3) ,
"C2" = c("WB", "T", 4, 5, 6),
"C3" = c("NB", "R", 7, 8, 9),
"C4" = c("SB", "Total", 12, 15, 18),
"C5" = c("", "L",1, 2, 3),
"C6" = c("", "TR", 4, 5, 6),
"C7" = c("", "Total", 5, 7, 9),
"C8" = c("", "L",1, 2, 3),
"C9" = c("", "R", 4, 5, 6),
"C10" = c("", "Total", 5, 7, 9),
"C11" = c("", "L",1, 2, 3),
"C12" = c("", "TR", 4, 5, 6),
"C13" = c("", "Total", 5, 7, 9), stringsAsFactors = FALSE)

> mydata
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13
1 EB WB NB SB
2 L T R Total L TR Total L R Total L TR Total
3 1 4 7 12 1 4 5 1 4 5 1 4 5
4 2 5 8 15 2 5 7 2 5 7 2 5 7
5 3 6 9 18 3 6 9 3 6 9 3 6 9

我想要前两行的组合,因此生成的数据集看起来像这样

    > myresult
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13
1 EBL EBT EBR EBTotal WBL WBTR WBTotal NBL NBR NBTotal SBL SBTR SBTotal
2 1 4 7 12 1 4 5 1 4 5 1 4 5
3 2 5 8 15 2 5 7 2 5 7 2 5 7
4 3 6 9 18 3 6 9 3 6 9 3 6 9

基本上,我想保持数据框的其余部分不变。

请注意:这是来自包含 1,000 条记录和 18 列的非常大的数据集的情况。任何帮助都感激不尽。提前致谢!

更新:我试过了

mydata[1,]= paste0(rep(mydata[1,], each = length(mydata[2,])), mydata[2,])

但这只是重复第一行的一个值

C1  C2  C3      C4  C5   C6      C7  C8  C9     C10 C11  C12     C13
1 EBL EBT EBR EBTotal EBL EBTR EBTotal EBL EBR EBTotal EBL EBTR EBTotal
2 L T R Total L TR Total L R Total L TR Total
3 1 4 7 12 1 4 5 1 4 5 1 4 5
4 2 5 8 15 2 5 7 2 5 7 2 5 7
5 3 6 9 18 3 6 9 3 6 9 3 6 9

最佳答案

查看数据,您似乎想要将第一行与第二行组合粘贴,直到值 "Total" 出现在第二行中。我们可以分别提取第一行和第二行,根据 "Total" 的出现将它们拆分,然后将它们与 first_row 粘贴以获得新值。

first_row <- mydata[1, ]
first_row <- first_row[first_row != ""]
second_row <- as.character(mydata[2, ])
mydata[1, ] <- unlist(Map(paste0,first_row, split(second_row,
c(0, cumsum(second_row == "Total")[-length(second_row)]))))
mydata <- mydata[-2, ]

mydata
# C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13
#1 EBL EBT EBR EBTotal WBL WBTR WBTotal NBL NBR NBTotal SBL SBTR SBTotal
#3 1 4 7 12 1 4 5 1 4 5 1 4 5
#4 2 5 8 15 2 5 7 2 5 7 2 5 7
#5 3 6 9 18 3 6 9 3 6 9 3 6 9

关于r - 从数据框中的两个字符类型行的组合创建一个新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56860283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com