首页 > 解决方案 > 使用 R 将 data.frame 转换为基于数据框列之一的字符列表

问题描述

我需要根据数据框的一列将 data.frame 转换为字符列表。

从两个列的 data.frame 开始,第一个包含化合物名称的唯一值,而另一个包含不唯一的化合物类型类别。例子:

Compound_name Compound_type
A             Inhibitor_A
B             Inhibitor_B
C             Inhibitor_A
D             Inhibitor_C
E             Inhibitor_B

我想以一个基于复合类型的列表结束,如下所示:

Inhibitor_A   'A' 'C'
Inhibitor_B   'B' 'E'
Inhibitor_C   'C'

我的 data.frame 包含 2000 个化合物,所以我需要一种迭代方式。

我不知道从哪里开始计算这个,非常感谢提前。

标签: rlistdataframeunique

解决方案


你可以split像这样使用:

split(x$Compound_name, x$Compound_type)
#$Inhibitor_A
#[1] "A" "C"
#
#$Inhibitor_B
#[1] "B" "E"
#
#$Inhibitor_C
#[1] "D"

数据:

x <- structure(list(Compound_name = c("A", "B", "C", "D", "E"), Compound_type = c("Inhibitor_A", 
"Inhibitor_B", "Inhibitor_A", "Inhibitor_C", "Inhibitor_B")), class = "data.frame", row.names = c(NA, 
-5L))

推荐阅读