【问题标题】:Create variables in data frame with for loop使用 for 循环在数据框中创建变量
【发布时间】:2018-11-10 17:16:41
【问题描述】:

我有一个主数据框 (mydata) 和两个辅助数据框 (df1, df2),如下所示:

x <- c(1, 2, 3, 4, 5)
y <- c(5, 4, 3, 2, 1)
mydata <- data.frame(x)
df1 <- data.frame(y)
df2 <- data.frame(y)
df2$y <- y+1 #This way, the columns in the df have the same name but different values.

我想根据df1 和df2 中的变量的公式在mydata 中创建新列,如下所示:

mydata$new1 <- mydata$x*df1$y
mydata$new2 <- mydata$x*df2$y

有没有办法用 for 循环来做到这一点?这就是我的想法:

for (i in 2) {
  mydata$paste0("new", i) <- mydata$x*dfpaste0(i)$y
}

【问题讨论】:

    标签: r loops dataframe transform


    【解决方案1】:

    类似的东西:

    for (i in 1:2) {
    
      mydata[[as.symbol(paste0('new', i))]] <- mydata$x*get(paste0("df", i))$y
    
    }
    

    【讨论】:

      【解决方案2】:

      我们还可以使用mget 来获取list 中的所有对象值并与相关的vector 相乘

      mydata[paste0("new", 1:2)] <- mydata$x * data.frame(mget(paste0("df", 1:2)))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-18
        相关资源
        最近更新 更多