gpt4 book ai didi

R:如何访问已动态创建名称的变量(使用粘贴)

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

我想知道如何使用 paste 创建一个变量名(一个已经存在的变量),然后访问这个变量。

示例:

var<-c("A","B","C")

for (i in 1:3){
paste0("var")[i]
}

注意:假设我需要使用 paste0创建变量名称(我正在处理 data.frames 并使用 paste0 为不同的列创建变量)

谢谢!

编辑:

好吧,这是更大的图景:
我有两个数据框: smallDFbigDF .我想将数据从 bigDF 复制到 smallDF。匹配是通过 user_name 完成的.
user <- c("userA","userB","userC")
variables<-c("user_age","user_city","user_street")

for (t in 1:length(variables)){

for (j in 1:length(user)){

x<-paste0("bigDF$",variables[t])
y<-paste0("smallDF$",variables[t])

tmp<-unique(x[which(bigDF$user_name==user[j])])[1] # unique will only yield one entry
replace<-c(as.character(rep(tmp,length(y[which(smallDF$user_name==user[j])]))))
y[which(smallDF$user_name==user[j])]<-replace

}
}

上面的代码不起作用。但是,当我避免第一个 for 循环并将 x 和 y 替换为相应的变量名称(bigDF$user_age 等)时,一切正常。这就是为什么我认为必须有一种简单的方法来使用外部 for 循环动态创建这些变量名称。
谢谢大家!

最佳答案

先看帮助?"[["然后可能在 fortune(312) .问题是,您在此过程中的某个地方了解到了神奇的 $没有正确了解它是什么捷径的捷径,并且觉得在两点之间距离最长的情况下需要使用捷径(有点像尝试从伦敦出发时使用纽约市和波士顿之间的捷径)到巴黎)。

如果您使用类似 bigDF[[ variables[t] ]] 的代码而不是尝试使用 $那么这将访问 bigDF 的列名称当前在 variables[t] .

学习使用 [[和其他适当的子集(仅在适当的情况下使用 $),您的整个过程将大大简化。

关于R:如何访问已动态创建名称的变量(使用粘贴),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18848597/

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