我正在寻找一种快速的方法来在以下格式的列表之间来回:
$`a`
[1] 1 2 3
$`b`
[1] 4 5 6
Run Code Online (Sandbox Code Playgroud)
来自/来自以下格式的data.frame:
name x
1 a 1
2 a 2
3 a 3
4 b 4
5 b 5
6 b 6
Run Code Online (Sandbox Code Playgroud)
(在这种情况下,不要真正关心列的名称是什么.)
这是上面以R格式使用的数据框:
df <- data.frame(name=c(rep("a",3),rep("b",3)), x=c(1:3,4:6))
Run Code Online (Sandbox Code Playgroud)
同样,我正在寻找两个独立的操作:一个将上面的data.frame转换为一个列表,另一个将它转换回data.frame.
是否有更好,更好的方法将混合内容的命名列表转换为数据框?
工作实例:
my_list <- list("a" = 1.0, "b" = "foo", "c" = TRUE)
my_df <- data.frame(
"key" = names(my_list),
stringsAsFactors = F
)
my_df[["value"]] <- unname(my_list)
Run Code Online (Sandbox Code Playgroud)
是否可以一步完成此转换?
我正在寻找一种有效的方式进行以下转换:
输入示例:
ob <- list(a = 2, b = 3)
Run Code Online (Sandbox Code Playgroud)
预期产量:
key value
1 a 2
2 b 3
Run Code Online (Sandbox Code Playgroud)
当前(详细)解决方案:
data.frame(key = names(ob), value = unlist(ob, use.names = FALSE))
Run Code Online (Sandbox Code Playgroud) 我在R中有一个名为country的键/值列表:
print(country)
$CAM
[1] 5
$TJK
[1] 1
$SEN
[1] 7
Run Code Online (Sandbox Code Playgroud)
关键是一个国家的名称和价值是这个国家的出现.
我想将此列表转换为数据帧,如:
country occurence
0 CAM 5
0 TJK 1
0 SEN 7
Run Code Online (Sandbox Code Playgroud)
感谢致敬