R:跨多个对象重新编码变量

R:跨多个对象重新编码变量,r,data-manipulation,R,Data Manipulation,提前谢谢你的建议。我试图在循环中的多个对象上创建一个新变量。这些新变量由函数生成 例如,我有三组国家级数据: # Generate Example Data `enter code here`pop <- data.frame(country=c("US","US","CA","CA","FR","FR"),year=c(1,2,1,2,1,2),value=c(290,300,29,30,50,55)) gas <- data.frame(country=c("US","US","

提前谢谢你的建议。我试图在循环中的多个对象上创建一个新变量。这些新变量由函数生成

例如,我有三组国家级数据:

# Generate Example Data
`enter code here`pop <- data.frame(country=c("US","US","CA","CA","FR","FR"),year=c(1,2,1,2,1,2),value=c(290,300,29,30,50,55))
gas <- data.frame(country=c("US","US","CA","CA","FR","FR"),year=c(1,2,1,2,1,2),value=c(3.10,1.80,4.50,2.50,4.50,2.50))
cars <- data.frame(country=c("US","US","CA","CA","FR","FR"),year=c(1,2,1,2,1,2),value=c(2.1,2.2,1.8,1.9,1.3,1.3))
#生成示例数据

`在这里输入代码'pop这对你有用吗

pop <- data.frame(country=c("US","US","CA","CA","FR","FR"),year=c(1,2,1,2,1,2),value=c(290,300,29,30,50,55))
gas <- data.frame(country=c("US","US","CA","CA","FR","FR"),year=c(1,2,1,2,1,2),value=c(3.10,1.80,4.50,2.50,4.50,2.50))
cars <- data.frame(country=c("US","US","CA","CA","FR","FR"),year=c(1,2,1,2,1,2),value=c(2.1,2.2,1.8,1.9,1.3,1.3))


attachCodes <- function(dframe)
{
  df <- dframe
  df$ccode <- countrycode(df$country,"iso2c","cown")
  df$id <- (df$ccode*10000)+df$year
  return(df)
}

tablesList <- list(pop,gas,cars)
tablesList <- lapply(tablesList,attachCodes)

pop特别感谢@Pawel提供解决问题所需的缺失信息。解决办法是:

rm(list=ls())
pop <- data.frame(country=c("US","US","CA","CA","FR","FR"),year=c(1,2,1,2,1,2),value=c(290,300,29,30,50,55))
gas <- data.frame(country=c("US","US","CA","CA","FR","FR"),year=c(1,2,1,2,1,2),value=c(3.10,1.80,4.50,2.50,4.50,2.50))
cars <- data.frame(country=c("US","US","CA","CA","FR","FR"),year=c(1,2,1,2,1,2),value=c(2.1,2.2,1.8,1.9,1.3,1.3))


attachCodes <- function(dframe)
{
  df <- dframe
  df$ccode <- countrycode(df$country,"iso2c","cown")
  df$id <- (df$ccode*10000)+df$year
  return(df)
}

names <- list("pop","gas","cars")
for(i in names){
  assign(i,attachCodes(get(i)))
}
rm(list=ls())

谢谢你的帮助。我感谢你的帮助。问题是,当您对50多个较大的数据表执行此操作时,TableList可能会变得非常笨拙。我真的不知道该怎么处理这张桌子。有没有办法改变原来的物体,比如爆炸物、汽油、汽车?
pop <- data.frame(country=c("US","US","CA","CA","FR","FR"),year=c(1,2,1,2,1,2),value=c(290,300,29,30,50,55))
gas <- data.frame(country=c("US","US","CA","CA","FR","FR"),year=c(1,2,1,2,1,2),value=c(3.10,1.80,4.50,2.50,4.50,2.50))
cars <- data.frame(country=c("US","US","CA","CA","FR","FR"),year=c(1,2,1,2,1,2),value=c(2.1,2.2,1.8,1.9,1.3,1.3))


attachCodes <- function(dframe)
{
  df <- dframe
  df$ccode <- countrycode(df$country,"iso2c","cown")
  df$id <- (df$ccode*10000)+df$year
  return(df)
}

tablesList <- list(pop,gas,cars)
tablesList <- lapply(tablesList,attachCodes)
rm(list=ls())
pop <- data.frame(country=c("US","US","CA","CA","FR","FR"),year=c(1,2,1,2,1,2),value=c(290,300,29,30,50,55))
gas <- data.frame(country=c("US","US","CA","CA","FR","FR"),year=c(1,2,1,2,1,2),value=c(3.10,1.80,4.50,2.50,4.50,2.50))
cars <- data.frame(country=c("US","US","CA","CA","FR","FR"),year=c(1,2,1,2,1,2),value=c(2.1,2.2,1.8,1.9,1.3,1.3))


attachCodes <- function(dframe)
{
  df <- dframe
  df$ccode <- countrycode(df$country,"iso2c","cown")
  df$id <- (df$ccode*10000)+df$year
  return(df)
}

names <- list("pop","gas","cars")
for(i in names){
  assign(i,attachCodes(get(i)))
}