同じ列名を持つ2つのデータフレームがありますsubject
。ただし、最初のデータフレームにはサブサブジェクト1行が多数ありますが、2番目のデータフレームにはサブジェクト1行が1つしかありません。これらの2つのデータフレームをどのように組み合わせることができますか?言い換えると、最初のデータフレームのサブジェクト番号と一致する2番目のデータフレームの値を使用して、最初のデータフレームに新しい列を作成するにはどうすればよいですか?
データフレーム1
data1 <- structure(list( subject = c("subject1", "subject1", "subject1", "subject1",
"subject1", "subject1", "subject1", "subject1", "subject1", "subject1",
"subject1", "subject1", "subject1", "subject1", "subject10", "subject10",
"subject10", "subject10", "subject10", "subject10", "subject10", "subject10",
"subject10", "subject10", "subject10", "subject10", "subject10", "subject10"
)), row.names = c(NA, -28L), groups = structure(list( .rows = structure(list(
c(7L, 9L, 11L, 15L, 18L, 19L, 21L, 25L, 27L, 28L), 4:5, 1L,
c(3L, 14L, 17L, 26L), c(8L, 22L, 24L), c(6L, 10L, 12L, 23L
), c(2L, 13L, 16L, 20L)), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), row.names = c(NA, 7L), class = c("tbl_df",
"tbl", "data.frame"), .drop = TRUE), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"))
データフレーム2
data2 <- structure(list(subject = c("subject1",
"subject10"), mean_per = c(63.5, 51.9285714285714)), row.names = c(NA,
-2L), groups = structure(list(subject = c("subject1", "subject10"
), .rows = structure(list(1L, 2L), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), row.names = 1:2, class = c("tbl_df",
"tbl", "data.frame"), .drop = TRUE), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"))
使用する data.table
library(data.table)
setDT(data1)[data2, mean_per2 := i.mean_per, on = .(subject)]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加