gpt4 book ai didi

r - R中的数据框列替换和汇总

转载 作者:行者123 更新时间:2023-12-04 18:18:37 27 4
gpt4 key购买 nike

我有数据框

names <- c("doe.jane", "doe.john", "smith.bob")
number <- c(3, 5, 1)
site <- c("A1", "A1", "A2")
df <- as.data.frame(matrix(c(site, names, number), 3))
names(df) <- c("site", "names", "number")

我只需要用姓氏替换全名,然后折叠数据框,因此输出为
names <- c("doe", "smith")
number <- c(8, 1)
site <- c("A1", "A2")
df <- as.data.frame(matrix(c(site, names, number), 2))
names(df) <- c("site", "names", "number")

最佳答案

你想做这样的事情:

last.names <- function(names) {
names <- as.character(names)
split.names <- strsplit(names, split='.', fixed=TRUE)
sapply(split.names, function(x) x[1])
}

df <- within(df, names <- last.names(names))
df <- with(df, aggregate(as.numeric(number), by=list(site=site, names=names), sum))

我会指出您对 df 的定义有点误导。你真的只需要说 df <- data.frame(names, number, site) .你这样做的方式导致三个 factor生成的 data.frame 中的列.

关于r - R中的数据框列替换和汇总,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11180046/

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