简单的循环在r

时间:2017-07-14 01:32:22

标签: r loops for-loop rounding paste

我有三个数据......

[C1]
CODE VALUE
c1    0.1757
c2    0.1757
c3    0.1757

[C2]
CODE VALUE
c1    0.1757
c2    0.1757
c3    0.1757

[C3]
CODE VALUE
c1    0.1757
c2    0.1757
c3    0.1757

我想使用循环函数对数字= 2的VALUE进行舍入,因为我想了解循环函数。

for(i in 1:3) {    
  a <-(paste0("c",i,"$VALUE"))
  a<-round(a,digits=2)  
}

以上代码无法处理我所做的事情......

如何调整代码......?

1 个答案:

答案 0 :(得分:1)

最简单的选择是将数据集放在list中,将其存储在list中并在list中进行处理

lst <- lapply(mget(paste0("C", 1:3)), transform, VALUE = round(VALUE, 2))

如果我们真的想用for循环来修改全局环境中的对象

nm1 <- paste0("C", 1:3)
for(nm in nm1) {
  tmp <- get(nm)
   assign(nm, `[[<-`(tmp, 'VALUE', value = round(tmp[['VALUE']], 2)))
  }
C1
#  CODE VALUE
#1   c1  0.18
#2   c2  0.18
#3   c3  0.18