% left_join(test2 %>% rownames_to_colum-6ren">
gpt4 book ai didi

r - 如何将整个行与另一个数据框中的匹配行名相乘?

转载 作者:行者123 更新时间:2023-12-03 13:45:35 25 4
gpt4 key购买 nike

假设我有以下数据框:

    test <- data.frame(X = c(1,2,3), Y = c(4,5,6), row.names = c("T1", "T2", "T3"))

test2 <- data.frame(mean = c(1,2,5), row.names = c("T1", "T2", "T3"))

我想将test数据框中的所有行乘以test2数据框中的值,并按行名进行匹配。我该怎么做才能得到这样的答案:
    answer <- data.frame(X = c(1,4,15), Y = c(4,10,30), row.names = c("T1", "T2", "T3"))

最佳答案

我将执行以下操作:

x <- test %>% 
rownames_to_column("id") %>%
left_join(test2 %>% rownames_to_column("id"), by = "id") %>%
mutate_at(vars(colnames(test)), list(~ . * mean)) %>%
select(-mean)

如果您具有相同名称的列(例如,两个名为X的列),则它们将分别标记为X.1和X.2
如果您想摆脱句号及其后的所有内容,我会这样做:
colnames(x) <- str_replace(colnames(x),"\\..*","")

希望这可以帮助

关于r - 如何将整个行与另一个数据框中的匹配行名相乘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62448430/

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