提问人:JTHOMAS93 提问时间:11/9/2023 更新时间:11/9/2023 访问量:35
根据 R 中不同数据帧中的值向数据帧添加列
Add a column to a dataframe based on values from a different dataframe in R
问:
我有一个数据框:
head(DF1)
class CH1..contrast validJT well
WG1.1 wellA1_col1_row1 17.1 invalid A1
WG1.2 wellA1_col1_row1 16.7 invalid B1
WG1.3 wellA1_col1_row1 14.9 valid A2
WG1.4 wellA1_col1_row1 8.9 invalid A3
WG1.5 wellA1_col1_row1 7.1 invalid A1
WG1.6 wellA1_col1_row1 17.4 invalid A1
type here
我想根据“well”列中的值添加一个名为“WG”的新列(可以是 A1-3 到 B1-3 的任何值)。在另一个数据框中:
view(DF2)
Well Sample
1 A1 HIV-1
2 A2 HIV-1
3 A3 HIV-1
4 B1 CD3
5 B2 CD3
6 B3 CD3
我有哪个孔号对应于哪个样品的信息。但是我不知道从哪里开始,所以基本上我想说在 DF1 中添加一列,如果 DF1$well = “A1”,则从 DF2 中的“A1”添加 DF2$Sample。
这可能吗,我什至不知道从哪里开始?
答:
2赞
afishlax
11/9/2023
#1
使用该软件包将提供可用于实现此目的的功能:dplyr
left_join
DF1 %>%
left_join(DF2)
但是,需要进行一个小的更改。这些列需要相同的名称才能在不指定的情况下被识别。DF1 和 DF2 都应使用“well”或“Well”作为列名。join_by
评论
0赞
JTHOMAS93
11/9/2023
哈哈哈非常简单的解决方案,我正在尝试各种古怪的事情来实现这一目标!谢谢!
评论
DF1 |> dplyr::left_join(DF2, join_by(well == Well))
merge()