将所有data.table行到一个列表[R
问题描述:
先从以下data.table:将所有data.table行到一个列表[R
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
,把它变成一个列表的结构如下:
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
我一直研究答案this question,但一直没能找出如何做到这一点的data.table的所有行一次,而不应用循环功能。我试图避免一个循环函数,因为实际data.table中的行数。
答
可以使用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
感谢,这让我的方式出现99%!为了得到正是我寻找,我需要'unname'这样:'unname(as.list(转(DT))' – bshelt141
这是一个很好的选择,我更新了一个不同的版本节省了使用unname'的' 。 – Psidom