检索并打印循环中不同data.frames的节
我有100个数据帧,其名称模式为检索并打印循环中不同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()
产品
。这些名称存储在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