匹配不同文件中不同大小的 2 列的值,并返回其中一个文件的第三列的相应值
matching values of 2 columns of different sizes in different files and returning corresponding value of third column of one of those files
我有一个包含每个试验信息的概览文件的工作簿
Trial | date| time| call| social status
Trial001 xxx xxx y Single alone
Trial002 xxx xxx n pair with partner
Trial003 xxx xxx n pair with partner
和一本工作簿,其中包含一个文件,其中包含每次试验中每个人(按行)的不同行为。 (试验之间的受试者不同,但由于 BORIS 都称为 F1)
Subject | Trial | behavior | total count | mean duration (S) | stdv
F1 | Trial001 | jump | 1 | 5 | stdv
F1 | Trial001 | walk | 2 | 10 | stdv
F1 | Trial002 | jump | 3 | 10 | stdv
F1 | Trial002 | walk | 3 | 10 | stdv
F1 | Trial002 | no view | 3 | 50 | stdv
现在我想在行为文件中创建一个列,包含相应概述试验中提到的社会地位。
我以为 left_join
会解决我的问题,但是当我尝试这个时它给了我一个错误,说它需要 ~name
或者它 returns 我的整个变异加入代码到我的控制台填充该列。
在这里,我用 join
的结果覆盖 data.frame behavior
behavior <- behavior %>%
left_join(overview %>% select(Trial, social_status),
by="Trial")
输出:
Subject Trial behavior total_count mean_duration stdv social_status
<chr> <chr> <chr> <dbl> <dbl> <chr> <chr>
1 F1 Trial001 jump 1 5 stdv Single alone
2 F1 Trial001 walk 2 10 stdv Single alone
3 F1 Trial002 jump 3 10 stdv pair with partner
4 F1 Trial002 walk 3 10 stdv pair with partner
5 F1 Trial002 no view 3 50 stdv pair with partner
输入:
# Behavior
structure(list(Subject = c("F1", "F1", "F1", "F1", "F1"), Trial = c("Trial001",
"Trial001", "Trial002", "Trial002", "Trial002"), behavior = c("jump",
"walk", "jump", "walk", "no view"), total_count = c(1, 2, 3,
3, 3), mean_duration = c(5, 10, 10, 10, 50), stdv = c("stdv",
"stdv", "stdv", "stdv", "stdv"), social_status = c("Single alone",
"Single alone", "pair with partner", "pair with partner", "pair with partner"
)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-5L))
# overview
structure(list(Trial = c("Trial001", "Trial002", "Trial003"),
date = c("xxx", "xxx", "xxx"), time = c("xxx", "xxx", "xxx"
), call = c("y", "n", "n"), social_status = c("Single alone",
"pair with partner", "pair with partner")), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -3L))
我有一个包含每个试验信息的概览文件的工作簿
Trial | date| time| call| social status
Trial001 xxx xxx y Single alone
Trial002 xxx xxx n pair with partner
Trial003 xxx xxx n pair with partner
和一本工作簿,其中包含一个文件,其中包含每次试验中每个人(按行)的不同行为。 (试验之间的受试者不同,但由于 BORIS 都称为 F1)
Subject | Trial | behavior | total count | mean duration (S) | stdv
F1 | Trial001 | jump | 1 | 5 | stdv
F1 | Trial001 | walk | 2 | 10 | stdv
F1 | Trial002 | jump | 3 | 10 | stdv
F1 | Trial002 | walk | 3 | 10 | stdv
F1 | Trial002 | no view | 3 | 50 | stdv
现在我想在行为文件中创建一个列,包含相应概述试验中提到的社会地位。
我以为 left_join
会解决我的问题,但是当我尝试这个时它给了我一个错误,说它需要 ~name
或者它 returns 我的整个变异加入代码到我的控制台填充该列。
在这里,我用 join
的结果覆盖 data.framebehavior
behavior <- behavior %>%
left_join(overview %>% select(Trial, social_status),
by="Trial")
输出:
Subject Trial behavior total_count mean_duration stdv social_status
<chr> <chr> <chr> <dbl> <dbl> <chr> <chr>
1 F1 Trial001 jump 1 5 stdv Single alone
2 F1 Trial001 walk 2 10 stdv Single alone
3 F1 Trial002 jump 3 10 stdv pair with partner
4 F1 Trial002 walk 3 10 stdv pair with partner
5 F1 Trial002 no view 3 50 stdv pair with partner
输入:
# Behavior
structure(list(Subject = c("F1", "F1", "F1", "F1", "F1"), Trial = c("Trial001",
"Trial001", "Trial002", "Trial002", "Trial002"), behavior = c("jump",
"walk", "jump", "walk", "no view"), total_count = c(1, 2, 3,
3, 3), mean_duration = c(5, 10, 10, 10, 50), stdv = c("stdv",
"stdv", "stdv", "stdv", "stdv"), social_status = c("Single alone",
"Single alone", "pair with partner", "pair with partner", "pair with partner"
)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-5L))
# overview
structure(list(Trial = c("Trial001", "Trial002", "Trial003"),
date = c("xxx", "xxx", "xxx"), time = c("xxx", "xxx", "xxx"
), call = c("y", "n", "n"), social_status = c("Single alone",
"pair with partner", "pair with partner")), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -3L))