将所有data.table行转换为列表R.

bsh*_*141 4 r list data.table

从以下data.table开始:

set.seed(1234)
dt <- data.table(x = runif(3), y = runif(3), z = runif(3))

print(dt)
#         x         y           z
#1: 0.1137034 0.6233794 0.009495756
#2: 0.6222994 0.8609154 0.232550506
#3: 0.6092747 0.6403106 0.666083758
Run Code Online (Sandbox Code Playgroud)

并将其转换为以下结构中的列表:

print(dt2)
#[[1]]
#[1] 0.1137034 0.6233794 0.009495756
#
#[[2]]
#[1] 0.6222994 0.8609154 0.2325505
#
#[[3]]
#[1] 0.6092747 0.6403106 0.6660838
Run Code Online (Sandbox Code Playgroud)

我一直在研究这个问题的答案,但是没有能够在不应用循环函数的情况下立即弄清楚如何对data.table的所有行执行此操作.我正在尝试避免循环函数,因为实际data.table中的行数.

Psi*_*dom 7

你可以使用这个data.table::transpose()功能:

transpose(as.list(dt))

#[[1]]
#[1] 0.113703411 0.623379442 0.009495756

#[[2]]
#[1] 0.6222994 0.8609154 0.2325505

#[[3]]
#[1] 0.6092747 0.6403106 0.6660838
Run Code Online (Sandbox Code Playgroud)