R 如何将表转换为data.table

R 如何将表转换为data.table,r,data.table,R,Data.table,如果由于某种原因,R工作流中出现了一个基本的R(二维)表对象,那么在保持其维度结构的同时,将其转换为数据表的最佳(简洁、可读、高效)方法是什么 示例数据: 两种可能的解决方案是使用unclass(将表格转换为常规二维数组)或as.data.frame的矩阵方法: # Convert it to a regular array with unclass data.table(unclass(tab), keep.rownames = "Pr") # Pr T1 T2 T3 # 1: P1

如果由于某种原因,R工作流中出现了一个基本的R(二维)
对象,那么在保持其维度结构的同时,将其转换为
数据表
的最佳(简洁、可读、高效)方法是什么

示例数据:


两种可能的解决方案是使用
unclass
(将表格转换为常规二维数组)或
as.data.frame
的矩阵方法:

# Convert it to a regular array with unclass
data.table(unclass(tab), keep.rownames = "Pr")
#    Pr T1 T2 T3
# 1: P1  0  1  0
# 2: P2  0  1  0
# 3: P3  1  1  1
# 4: P4  1  1  0
# 5: P9  0  0  1

# Convert it first to a data.frame 
setDT(as.data.frame.matrix(tab), keep.rownames = "Pr")[]
#    Pr T1 T2 T3
# 1: P1  0  1  0
# 2: P2  0  1  0
# 3: P3  1  1  1
# 4: P4  1  1  0
# 5: P9  0  0  1

两种可能的解决方案是使用
unclass
(将表格转换为常规二维数组)或
as.data.frame
的矩阵方法:

# Convert it to a regular array with unclass
data.table(unclass(tab), keep.rownames = "Pr")
#    Pr T1 T2 T3
# 1: P1  0  1  0
# 2: P2  0  1  0
# 3: P3  1  1  1
# 4: P4  1  1  0
# 5: P9  0  0  1

# Convert it first to a data.frame 
setDT(as.data.frame.matrix(tab), keep.rownames = "Pr")[]
#    Pr T1 T2 T3
# 1: P1  0  1  0
# 2: P2  0  1  0
# 3: P3  1  1  1
# 4: P4  1  1  0
# 5: P9  0  0  1
# Convert it to a regular array with unclass
data.table(unclass(tab), keep.rownames = "Pr")
#    Pr T1 T2 T3
# 1: P1  0  1  0
# 2: P2  0  1  0
# 3: P3  1  1  1
# 4: P4  1  1  0
# 5: P9  0  0  1

# Convert it first to a data.frame 
setDT(as.data.frame.matrix(tab), keep.rownames = "Pr")[]
#    Pr T1 T2 T3
# 1: P1  0  1  0
# 2: P2  0  1  0
# 3: P3  1  1  1
# 4: P4  1  1  0
# 5: P9  0  0  1