检索并打印循环中不同data.frames的节

检索并打印循环中不同data.frames的节,r,R,我有100个数据帧,其名称模式为产品。这些名称存储在vector名称中 我想检查它们,但我不想键入print(product,n=10)100次 我试过了 for (name in names) { print(paste0("product_", name), n = 10) } 但这不起作用,因为paste0()的输出是一个字符串,而不是数据帧本身 如何使用名称作为字符串检索数据框?问题 避免使用名称,因为它与名称(x)冲突 使用get(x)从文本字符串中检索变量 最后,print()

我有100个数据帧,其名称模式为
产品
。这些名称存储在vector
名称中

我想检查它们,但我不想键入
print(product,n=10)
100次

我试过了

for (name in names) {
  print(paste0("product_", name), n = 10)
}
但这不起作用,因为
paste0()
的输出是一个字符串,而不是数据帧本身

如何使用名称作为字符串检索数据框?

问题
  • 避免使用
    名称
    ,因为它与
    名称(x)
    冲突
  • 使用
    get(x)
    从文本字符串中检索变量
  • 最后,
    print()
    没有
    n=
    参数。相反,使用
    head(x)
    查看
    data.frame
    的第一次
    n=6L
    观察(或
    tail(x)
    查看最后一次
    n=6L
  • 因此,使用
    打印(x,n=10)
    会触发:

    打印错误。默认值(m,…,quote=quote,right=right):

    无效的“na.print”规范

    建议的解决方案 测试数据 生成一些示例数据:

    regions = c("chicago","detroit")
    
    set.seed(11)
    
    for(region in regions){
      d = data.frame(a = rnorm(10), b = rnorm(10))
      assign(paste0("product_",region), d)
    }
    
    输出:

                 a          b
    1  -1.63651631  0.7898706
    2   0.02038144 -0.2299939
    3   0.89174268 -0.8185025
    4  -0.87274968  0.4997342
    5   0.89005083  0.1591923
    6  -0.34387435  0.5426264
    7  -2.18678137 -0.1566451
    8   0.88005818  0.4387933
    9   0.72385656  1.4878706
    10  0.21985268  0.0601651
    
                a          b
    1  -0.8490129  0.4534761
    2   2.3396931 -0.1234337
    3  -0.1212030 -0.7630968
    4  -1.9502074  0.2282701
    5   0.5387115  1.1194619
    6   1.6935148  0.1565732
    7  -0.7909682 -0.6887721
    8  -1.0752606  0.4529496
    9  -0.6078751 -1.0675467
    10  0.7544017  0.4015651
    
    数据集1:

                 a          b
    1  -1.63651631  0.7898706
    2   0.02038144 -0.2299939
    3   0.89174268 -0.8185025
    4  -0.87274968  0.4997342
    5   0.89005083  0.1591923
    6  -0.34387435  0.5426264
    7  -2.18678137 -0.1566451
    8   0.88005818  0.4387933
    9   0.72385656  1.4878706
    10  0.21985268  0.0601651
    
                a          b
    1  -0.8490129  0.4534761
    2   2.3396931 -0.1234337
    3  -0.1212030 -0.7630968
    4  -1.9502074  0.2282701
    5   0.5387115  1.1194619
    6   1.6935148  0.1565732
    7  -0.7909682 -0.6887721
    8  -1.0752606  0.4529496
    9  -0.6078751 -1.0675467
    10  0.7544017  0.4015651
    
    数据集2:

                 a          b
    1  -1.63651631  0.7898706
    2   0.02038144 -0.2299939
    3   0.89174268 -0.8185025
    4  -0.87274968  0.4997342
    5   0.89005083  0.1591923
    6  -0.34387435  0.5426264
    7  -2.18678137 -0.1566451
    8   0.88005818  0.4387933
    9   0.72385656  1.4878706
    10  0.21985268  0.0601651
    
                a          b
    1  -0.8490129  0.4534761
    2   2.3396931 -0.1234337
    3  -0.1212030 -0.7630968
    4  -1.9502074  0.2282701
    5   0.5387115  1.1194619
    6   1.6935148  0.1565732
    7  -0.7909682 -0.6887721
    8  -1.0752606  0.4529496
    9  -0.6078751 -1.0675467
    10  0.7544017  0.4015651
    
    问题
  • 避免使用
    名称
    ,因为它与
    名称(x)
    冲突
  • 使用
    get(x)
    从文本字符串中检索变量
  • 最后,
    print()
    没有
    n=
    参数。相反,使用
    head(x)
    查看
    data.frame
    的第一次
    n=6L
    观察(或
    tail(x)
    查看最后一次
    n=6L
  • 因此,使用
    打印(x,n=10)
    会触发:

    打印错误。默认值(m,…,quote=quote,right=right):

    无效的“na.print”规范

    建议的解决方案 测试数据 生成一些示例数据:

    regions = c("chicago","detroit")
    
    set.seed(11)
    
    for(region in regions){
      d = data.frame(a = rnorm(10), b = rnorm(10))
      assign(paste0("product_",region), d)
    }
    
    输出:

                 a          b
    1  -1.63651631  0.7898706
    2   0.02038144 -0.2299939
    3   0.89174268 -0.8185025
    4  -0.87274968  0.4997342
    5   0.89005083  0.1591923
    6  -0.34387435  0.5426264
    7  -2.18678137 -0.1566451
    8   0.88005818  0.4387933
    9   0.72385656  1.4878706
    10  0.21985268  0.0601651
    
                a          b
    1  -0.8490129  0.4534761
    2   2.3396931 -0.1234337
    3  -0.1212030 -0.7630968
    4  -1.9502074  0.2282701
    5   0.5387115  1.1194619
    6   1.6935148  0.1565732
    7  -0.7909682 -0.6887721
    8  -1.0752606  0.4529496
    9  -0.6078751 -1.0675467
    10  0.7544017  0.4015651
    
    数据集1:

                 a          b
    1  -1.63651631  0.7898706
    2   0.02038144 -0.2299939
    3   0.89174268 -0.8185025
    4  -0.87274968  0.4997342
    5   0.89005083  0.1591923
    6  -0.34387435  0.5426264
    7  -2.18678137 -0.1566451
    8   0.88005818  0.4387933
    9   0.72385656  1.4878706
    10  0.21985268  0.0601651
    
                a          b
    1  -0.8490129  0.4534761
    2   2.3396931 -0.1234337
    3  -0.1212030 -0.7630968
    4  -1.9502074  0.2282701
    5   0.5387115  1.1194619
    6   1.6935148  0.1565732
    7  -0.7909682 -0.6887721
    8  -1.0752606  0.4529496
    9  -0.6078751 -1.0675467
    10  0.7544017  0.4015651
    
    数据集2:

                 a          b
    1  -1.63651631  0.7898706
    2   0.02038144 -0.2299939
    3   0.89174268 -0.8185025
    4  -0.87274968  0.4997342
    5   0.89005083  0.1591923
    6  -0.34387435  0.5426264
    7  -2.18678137 -0.1566451
    8   0.88005818  0.4387933
    9   0.72385656  1.4878706
    10  0.21985268  0.0601651
    
                a          b
    1  -0.8490129  0.4534761
    2   2.3396931 -0.1234337
    3  -0.1212030 -0.7630968
    4  -1.9502074  0.2282701
    5   0.5387115  1.1194619
    6   1.6935148  0.1565732
    7  -0.7909682 -0.6887721
    8  -1.0752606  0.4529496
    9  -0.6078751 -1.0675467
    10  0.7544017  0.4015651