r - R 中的列表(或字典)列表

标签 r list

我有一个数据框,例如:

Groups Letters
G1   A
G1   A
G1   A
G1   A
G2   B
G2   B
G3   C
G3   C
G3   C
G4   A
G4   A
G5   C 

我想解析数据帧并创建一个我可以查询的列表。

所以实际上我想打印此列表中每个名称的组,例如:

列出$A 给出:

['G1','G4']

有人有想法吗,

最佳答案

我们可以在unique数据集上按“字母”拆分“组”(假设只有两列,或者对所选列进行子集化),然后循环遍历 >list 并使用 as.list

转换为嵌套列表
lapply(with(unique(df1), split(Groups, Letters)), as.list)

-输出

$A
$A[[1]]
[1] "G1"

$A[[2]]
[1] "G4"


$B
$B[[1]]
[1] "G2"


$C
$C[[1]]
[1] "G3"

$C[[2]]
[1] "G5"

如果OP想要创建一个字符串,

lapply(with(unique(df1), split(Groups, Letters)), 
      function(x) sprintf("[%s]", toString(sQuote(x, FALSE))))

-输出

$A
[1] "['G1', 'G4']"

$B
[1] "['G2']"

$C
[1] "['G3', 'G5']"

或者我们可以转换为 JSON

library(jsonlite)
lapply(with(unique(df1), split(Groups, Letters)), function(x) toJSON(x))
$A
["G1","G4"] 

$B
["G2"] 

$C
["G3","G5"] 

数据

df1 <- structure(list(Groups = c("G1", "G1", "G1", "G1", "G2", "G2", 
"G3", "G3", "G3", "G4", "G4", "G5"), Letters = c("A", "A", "A", 
"A", "B", "B", "C", "C", "C", "A", "A", "C")), 
class = "data.frame", row.names = c(NA, 
-12L))

关于r - R 中的列表(或字典)列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67827128/

相关文章:

r - 为什么 dplyr filter() 在函数内不起作用(即使用变量作为列名)?

python - 在 Python 中线性化列表的最短方法

c# - 使用 LINQ 从 List<T> 中删除元素

Python itertools groupby 在列表理解中的多次使用

r - 时间序列,将每月数据更改为每季度一次

r - Plotly - 创建具有连续色阶的饼图

java - 从不同地方调用时不能在方法参数中使用 List<Future<?>>

java - 异常后继续列表迭代

r - install.packages 中的警告 : unable to access index for repository

R 的保留内存是已分配数组大小的两倍