我有100个数据框,名称模式为product_<region>
。这些名称存储在向量names
。
我想检查一下,但我不想输入print(product_<region>, n = 10)
100次。
我已经尝试了
for (name in names) {
print(paste0("product_", name), n = 10)
}
但这不起作用,因为paste0()
的输出是一个字符串 - 它不是数据框本身。
如何使用其名称作为字符串检索数据框?
答案 0 :(得分:4)
names
,因为它与names(x)
。get(x)
从文本字符串中检索变量。print()
不的n=
参数。相反,使用head(x)
查看data.frame
的第一个n = 6L
观察结果(或tail(x)
表示最后一个n = 6L
)。然后使用print(x, n=10)
作为结果:
print.default(m,...,quote = quote,right = right)出错:
无效&#39; na.print&#39;规范
for (region in regions) {
print(head(get(paste0("product_", region)), n = 10))
}
生成一些样本数据:
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)
}
<强>输出:强>
数据集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
数据集2:
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