【发布时间】:2021-12-04 15:42:27
【问题描述】:
我一直在尝试对我的数据集 (A2) 的行进行排序,以匹配另一个数据集 (A1) 的多个列。我曾经使用过一个代码,它工作得很好。今天我修改了代码以在新数据集上使用,我得到了我不应该得到的 NA。
这是我正在使用的代码
A4 <- A2[match(paste(A1$Subject,A1$Condition,A1$test, A1$Replication), paste(A2$Subject,A2$Condition,A2$test,A2$Replication)),]
数据:
A1 <- structure(list(Subject = c(1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
2, 2, 2, 2), Condition = c(1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2,
1, 1, 2, 2), test = c(1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2,
2, 2, 2), Replication = c(101, 108, 103, 105, 101, 108, 103,
105, 101, 108, 103, 105, 101, 108, 103, 105), Movement = c(43,
56, 45, 43, 35, 34, 34, 3, 4, 67, 45, 34, 65, 34, 345, 23)), row.names = c(NA,
-16L), class = c("tbl_df", "tbl", "data.frame"))
A2 <-structure(list(Subject = c(2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
1, 1, 1, 1, 1), Condition = c(1, 1, 2, 2, 1, 1, 2, 2, 1, 1,
2, 2, 2, 1, 1, 2), test = c(1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1,
1, 2, 2, 2, 2), Replication = c(108, 101, 103, 105, 101, 108,
103, 105, 108, 101, 103, 105, 101, 108, 103, 105), Movement = c(43,
56, 45, 43, 35, 34, 34, 3, 4, 67, 45, 34, 65, 34, 345, 23)), row.names = c(NA,
-16L), class = c("tbl_df", "tbl", "data.frame"))
【问题讨论】:
-
您能否提供
A2和A4和dput()的示例数据框?这将使每个人的工作更轻松。 -
@Shibaprasadb,我刚刚添加了一些数据,谢谢
-
您收到的是
NA,因为A2中不存在某些行组合。例如,查看A1中的第 5 行在A2中没有匹配项。您的预期输出是什么? -
谢谢,我根据您的评论返回了我的数据并修复了它