根据 R 中不同数据帧中的值向数据帧添加列

Add a column to a dataframe based on values from a different dataframe in R

提问人:JTHOMAS93 提问时间:11/9/2023 更新时间:11/9/2023 访问量:35

问:

我有一个数据框:

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。

这可能吗,我什至不知道从哪里开始?

R 数据帧 列表

评论

0赞 Limey 11/9/2023
您需要联接两个数据框。在 StackOverflow 上有很多示例可以说明如何执行此操作
0赞 Jon Spring 11/9/2023
DF1 |> dplyr::left_join(DF2, join_by(well == Well))
0赞 Bernhard 11/9/2023
其基本 R 函数是 。例如,infoworld.com/article/3454356/...r-coder.com/merge-r/#google_vignettestatmethods.net/management/merging.htmlmerge()

答:

2赞 afishlax 11/9/2023 #1

使用该软件包将提供可用于实现此目的的功能:dplyrleft_join

DF1 %>%
   left_join(DF2)

但是,需要进行一个小的更改。这些列需要相同的名称才能在不指定的情况下被识别。DF1 和 DF2 都应使用“well”或“Well”作为列名。join_by

评论

0赞 JTHOMAS93 11/9/2023
哈哈哈非常简单的解决方案,我正在尝试各种古怪的事情来实现这一目标!谢谢!