根据 R data.frame 中的可用数据分配评分?
Assign grading based on available data in R data.frame?
我有以下两个data.frame
。我想从 D1
中获取 Grade
并分配给 D
中的 Pts
。操作完成后,D
data.frame
应该有 Pts
、Val
和 Grade
的列,而没有 C
或 Good
Grade
.
D <- data.frame(Pts= c("A","B","D"), Val = c(3.5,4,5))
D1 = data.frame(Pts = c("A","B","C", "D"), Grade = c("Ugly", "Bad", "Good", "Excellent"))
D$Grade <- D1$Grade
我们可以通过 'Pts' 列连接 on
来在 data.table
中使用连接,并将 D1 中的 'Grade' 分配 (:=
) 到 D
library(data.table)
setDT(D)[D1, Grade := Grade, on = .(Pts)]
-输出
D
Pts Val Grade
1: A 3.5 Ugly
2: B 4.0 Bad
3: D 5.0 Excellent
在 base R
中,可以用 merge
或更快地执行相同操作 match
D$Grade <- D1$Grade[match(D$Pts, D1$Pts)]
代码行
D$Grade <- D1$Grade
由于多种原因无法正常工作
- 行数不一样
- 即使行数相同,两个数据集中的'Pts'也可能不匹配元素
您可以使用左连接:
library(dplyr)
D %>%
left_join(D1, by="Pts")
我有以下两个data.frame
。我想从 D1
中获取 Grade
并分配给 D
中的 Pts
。操作完成后,D
data.frame
应该有 Pts
、Val
和 Grade
的列,而没有 C
或 Good
Grade
.
D <- data.frame(Pts= c("A","B","D"), Val = c(3.5,4,5))
D1 = data.frame(Pts = c("A","B","C", "D"), Grade = c("Ugly", "Bad", "Good", "Excellent"))
D$Grade <- D1$Grade
我们可以通过 'Pts' 列连接 on
来在 data.table
中使用连接,并将 D1 中的 'Grade' 分配 (:=
) 到 D
library(data.table)
setDT(D)[D1, Grade := Grade, on = .(Pts)]
-输出
D
Pts Val Grade
1: A 3.5 Ugly
2: B 4.0 Bad
3: D 5.0 Excellent
在 base R
中,可以用 merge
或更快地执行相同操作 match
D$Grade <- D1$Grade[match(D$Pts, D1$Pts)]
代码行
D$Grade <- D1$Grade
由于多种原因无法正常工作
- 行数不一样
- 即使行数相同,两个数据集中的'Pts'也可能不匹配元素
您可以使用左连接:
library(dplyr)
D %>%
left_join(D1, by="Pts")