【发布时间】:2026-02-04 08:30:01
【问题描述】:
我需要通过合并、聚合和拆分数据帧来执行各种操作。这些行动需要连续几年重复(2000 年、2001 年、2002 年等)。但是,我找不到一种方法来引用基于带有年份的循环字符串的多个数据帧。
一个例子: 我想合并同一年的 3 个数据框。我当前的代码:
Stake_2000 <- combine(A2000, B2000, C2000)
Stake_2001 <- combine(A2001, B2001, C2001)
Stake_2002 <- combine(A2002, B2002, C2002)
Stake_2003 <- combine(A2003, B2003, C2003)
Stake_2004 <- combine(A2004, B2004, C2004)
Stake_2005 <- combine(A2005, B2005, C2005)
我想通过循环中的变量替换年份来简化。但是,我无法让 R 从适当的数据帧中读取。我曾多次尝试搁浅:
names <- c("2000", "2001", "2002", "2003", "2004", "2005")
for (n in names)
{Temp <- combine(c("A",n,sep=""), (c"B",n,sep=""), c("C",n,sep=""))
assign(paste("Stake_",n,sep=""), Temp)}
or replace combine function with combine(An, Bn, Cn), or combine(A+n, B+n, C+n)
除了这些操作之外,我还需要从不同的数据库中聚合和匹配这些年来遇到的类似问题。例如,将所有“2000”替换为循环中的后续年份:
Temp <- aggregate(VarA~VarB, data=A_2000, FUN=length)
S_2000$VarC <- Temp[match(S_2000$ID, Temp$ID), "VarA"]
我想有一些非常直接的答案,但我一直没能找到。
【问题讨论】:
-
我猜你错过了
paste,即paste(c('A', n, sep='')。最好提供一个可重现的小例子*.com/questions/5963269/… -
谢谢。我会做一个可重现的例子。不幸的是,插入粘贴也不起作用。