gpt4 book ai didi

r - 如果它们具有相同的开头,如何替换矩阵中的值?

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

我有一个很大的杂货矩阵。一些值相同但名称不同。例如:

Ketchup  Ketchupwithgarlic  Ketchupspicy Chips Chipsorganic
0 1 0 0 1
1 0 0 0 0
0 0 0 1 0
1 0 0 0 0

我想做的是,如果一个名称以完全相同的名称开头,则将这两个向量合并为一个向量,因此输出如下所示:

Ketchup Chips
1 1
1 0
0 1
1 0

我该怎么办?

最佳答案

我相信这可以满足您的需求。至少对于您提供的数据集而言。而且它不依赖于硬编码的列名。

使用@MKR answer 中的代码读取的数据:

nms <- names(df)
inx <- which(sapply(seq_along(nms), function(i) any(grepl(paste0("^", nms[i]), nms[-i]))))
result <- sapply(inx, function(i) rowSums(df[, grep(nms[i], nms)]))
colnames(result) <- nms[inx]
result
# Ketchup Chips
#[1,] 1 1
#[2,] 1 0
#[3,] 0 1
#[4,] 1 0

关于r - 如果它们具有相同的开头,如何替换矩阵中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50434631/

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