R表示全局环境中对象上的循环,以在一个变量上生成子集
假设我的全局环境中有3个对象(A、B和C):R表示全局环境中对象上的循环,以在一个变量上生成子集,r,object,for-loop,R,Object,For Loop,假设我的全局环境中有3个对象(A、B和C): A <- data.frame( "Var1" = c("0", "0", "1", "0"), "Var2" = c("1", "0", "0", "0"), "Var3" = c("0","1", "1", "1"), "Site" = c("alpha", "alpha", "beta" ,"gamma") ) B <- data.frame( "Var4" = c("0", "0", "1", "1"),
A <- data.frame(
"Var1" = c("0", "0", "1", "0"),
"Var2" = c("1", "0", "0", "0"),
"Var3" = c("0","1", "1", "1"),
"Site" = c("alpha", "alpha", "beta" ,"gamma")
)
B <- data.frame(
"Var4" = c("0", "0", "1", "1"),
"Var5" = c("1", "0", "0", "1"),
"Site" = c("alpha", "beta" , "beta" ,"gamma")
)
C <- data.frame(
"Var6" = c("0", "0", "1"),
"Var7" = c("1", "0", "0"),
"Site" = c("alpha", "beta" ,"gamma")
)
这个循环看起来怎么样 不要创建多个对象,而是将
拆分为列表
即拆分(a,a$Site)
类似于lappy(mget(c(“a”,“B”,“c”)),函数(x)拆分(x,x$Site))将提供一个很好的嵌套的数据帧列表,在R中使用起来更容易。在全局环境中创建一组相关但松散的变量只会使事情变得混乱。
A_alpha = A[A$Site == 'alpha',]
A_beta = A[A$Site == 'beta',]
A_gamma = A[A$Site == 'gamma',]
B_alpha = B[B$Site == 'alpha',]
B_beta = B[B$Site == 'beta',]
B_gamma = B[B$Site == 'gamma',]
C_alpha = C[C$Site == 'alpha',]
C_beta = C[C$Site == 'beta',]
C_gamma = C[C$Site == 'gamma',]