使用循环创建新变量

jtan8999

我的数据框称为Subs

我的变量是REV_4REV_5REV_6

我想创建新的变量来计算收入的百分比变化。
例如:d.rev.5 <- Subs$REV_5/Subs/$REV_4 -1

我想使用循环来创建这些新变量。我已经试过了:

for(i in 5:10){
Subs$d.data.[i] <- Subs$REV_[i]/Subs$REV_[i-1] - 1 }

但这没用我怀疑它不能识别i变量名的一部分。

有什么办法可以解决这个问题?太感谢了。

SymbolixAU

您不能像尝试(Subs$REV_[i]那样引用列,需要创建一个字符串来表示该列。

我认为您要尝试做的是(由于缺少您自己创建的数据)

set.seed(123)
Subs <- data.frame(rev_1 = rnorm(10, 0, 1),
                   rev_2 = rnorm(10, 0, 1),
                   rev_3 = rnorm(10, 0, 1),
                   rev_4 = rnorm(10, 0, 1))

for(i in 2:4){
  ## looping over columns 2-4
  col1 <- paste0("rev_", i)
  col2 <- paste0("rev_", i - 1)

  col_new <- paste0("d.rev.", i)

  Subs[, col_new] <- Subs[, col1] / Subs[, col2]

}

## A note on subsetting a data.frame
Subs$rev_1   ## works
i <- 1
Subs$rev_[i] ## doesn't work
Subs[, rev_[i]] ## doesn't work
Subs[, "rev_1"] ## works
Subs[, paste0("rev_", i)] ## works
## because
paste0("rev_", i)  ## creates the string:
[1] "rev_1"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用循环创建新变量

来自分类Dev

在R中使用For循环创建新变量

来自分类Dev

SQL:在循环中使用变量来创建新表

来自分类Dev

SQL:在循环中使用变量来创建新表

来自分类Dev

如何使用循环和 ifelse 语句创建新变量

来自分类Dev

使用其他变量名在R中使用循环创建新变量

来自分类Dev

Perl:在循环内创建新变量

来自分类Dev

如何使用循环索引引用变量名并创建新的变量名?

来自分类Dev

使用 for 循环创建新列

来自分类Dev

使用For循环创建符号变量

来自分类Dev

Python:使用循环创建变量

来自分类Dev

使用循环创建变量并分配

来自分类Dev

使用ifelse创建新变量

来自分类Dev

为for循环中的每个循环创建新的变量名

来自分类Dev

使用赋值变量创建新变量

来自分类Dev

如何使用TensorFlow创建循环变量

来自分类Dev

如何使用循环后的名称创建变量

来自分类Dev

R-使用循环创建条件变量

来自分类Dev

使用for循环创建和分配不同的变量

来自分类Dev

在循环内使用mutate创建变量

来自分类Dev

for循环,使用“ <-”在R中创建变量

来自分类Dev

JS:使用 for 循环创建 n 个变量?

来自分类Dev

每次循环都创建一个新变量吗?

来自分类Dev

Rails 添加传递变量以从循环创建新记录

来自分类Dev

使用transform和%>%创建新变量

来自分类Dev

使用if / else语句创建新的变量列

来自分类Dev

使用purrr以编程方式创建新变量?

来自分类Dev

使用查找表创建新变量

来自分类Dev

如何使用变量创建新的Mongo ObjectId?