【发布时间】:2023-03-14 15:29:01
【问题描述】:
我需要考虑因素水平为现有数据框创建一个新列。我有 2 个名为 dat_group 和 dat_prices 的数据框。这些数据框如下所示。
dat_group
Group
1 A
2 A
3 A
4 A
5 A
6 A
7 A
8 A
9 A
10 A
11 C
12 C
13 C
14 C
15 C
16 C
17 C
18 C
19 C
20 C
21 B
22 B
23 B
24 B
25 B
26 B
27 B
28 B
29 B
30 B
dat_price
A B C
1 21 45 24
2 21 45 24
3 21 45 24
4 21 45 24
5 15 11 10
6 15 11 10
7 15 11 10
8 20 13 55
9 20 13 55
10 20 13 55
考虑到 dat_group 中的级别,我需要粘贴 A、B 和 C 列的值。行序列应该是相同的顺序。如果我为 dat_group 创建新列作为“价格”
dat_group$Price<-NA
那么数据框应该是这样的;
Group Price
1 A 21
2 A 21
3 A 21
4 A 21
5 A 15
6 A 15
7 A 15
8 A 20
9 A 20
10 A 20
11 C 24
12 C 24
13 C 24
14 C 24
15 C 10
16 C 10
17 C 10
18 C 55
19 C 55
20 C 55
21 B 45
22 B 45
23 B 45
24 B 45
25 B 11
26 B 11
27 B 11
28 B 13
29 B 13
30 B 13
我尝试使用一些可用的示例 e.g.1 e.g.2 来做到这一点,但没有成功。
请任何人帮助我。可以通过以下代码访问两个示例数据帧。我的实际数据集有几 1000 行。
dat_group<- structure(list(Group = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("A", "B", "C"), class = "factor")), .Names = "Group", class = "data.frame", row.names = c(NA,
-30L))
dat_price<-structure(list(A = c(21L, 21L, 21L, 21L, 15L, 15L, 15L, 20L,
20L, 20L), B = c(45L, 45L, 45L, 45L, 11L, 11L, 11L, 13L, 13L,
13L), C = c(24L, 24L, 24L, 24L, 10L, 10L, 10L, 55L, 55L, 55L)), .Names = c("A",
"B", "C"), class = "data.frame", row.names = c(NA, -10L))
【问题讨论】:
-
如果只有 2 个
A后跟 2 个Bs 怎么办,以此类推。在这种情况下应该输出什么?或者结果因子的数量是否与dat_price的行相同?