我需要帮助来从矢量加载数据
一方面,我有一个带有产品单独标识的数据框(大约13.000 obs)。另一方面,我有几个向量(50),这些向量具有属于同一生产批次的产品的所有单个ID。
我用所有矢量的名称创建了一个数据框。
现在,我必须分别访问每个向量的数据,以与存储在数据帧中的单个ID进行比较。
最终结果是在数据框中添加具有批次名称的新列。
ID_df=data.frame(ID=c(1:10),LOT=("W/O Lot"),stringsAsFactors = F)
Lot_a=c(1:3)
Lot_b=c(4:6)
Lot_c=c(7:9)
index=as.data.frame(ls(pattern = 'Lot_'))
ID_df[which(ID_df$ID %in% Lot_a),2]='Lot_a'
ID_df[which(ID_df$ID %in% Lot_b),2]='Lot_b'
ID_df[which(ID_df$ID %in% Lot_c),2]='Lot_c'
ID_df
ID LOT
1 1 Lot_a
2 2 Lot_a
3 3 Lot_a
4 4 Lot_b
5 5 Lot_b
6 6 Lot_b
7 7 Lot_c
8 8 Lot_c
9 9 Lot_c
10 10 W/O Lot
我尝试过使用FOR循环,但只能读取索引数据框中的向量名称,而不是其中包含的数据。
我该怎么做?
答案 0 :(得分:0)
执行以下操作:
eval(parse(text = index[1]))
如果我正确理解了您的问题,则您希望R将字符串视为R代码来评估。您可以使用eval
来这样做。
以上将为您提供1,2,3作为输出。
答案 1 :(得分:0)
实际上,最好将数据存储在相关的列表中,但是如果它们已经存在于全局环境中,则可以使用ls
和mget
来获取数据列表。您的ls
向量匹配的数据:
mget(ls(pattern = "vector_"))
结果:
$vector_a
[1] 1 2 3
$vector_b
[1] 4 5 6
$vector_c
[1] 7 8 9