我的問題很簡單:我在 R 中生成了這種型別的物件,它看起來像一個資料框,但實際上是一個陣列。
> confidence
, , 1
[,1] [,2]
2.5% 16.98751 -0.03834785
97.5% 17.58275 -0.01476014
, , 2
[,1] [,2]
2.5% 18.69040 -0.06682464
97.5% 19.63179 -0.03040943
, , 3
[,1] [,2]
2.5% 20.41596 -0.09509432
97.5% 21.58752 -0.05110339
> class(confidence)
[1] "array"
我正在尋找一種以有用的格式匯出它的方法,例如使用 excel 處理它。如果需要,我愿意接受任何型別的物件轉換。
謝謝您的幫助!
uj5u.com熱心網友回復:
1) adply這會將 3d 陣列轉換為資料框,然后您可以使用 write.csv 并將其匯入 Excel 或使用其他 R 包傳輸。
# test input
a <- array(1:24, 2:4, dimnames =
list(dim1 = c("a", "b"), dim2 = c("A", "B", "C"), dim3 = 1:4))
plyr::adply(a, 1:2)
給予:
dim1 dim2 1 2 3 4
1 a A 1 7 13 19
2 b A 2 8 14 20
3 a B 3 9 15 21
4 b B 4 10 16 22
5 a C 5 11 17 23
6 b C 6 12 18 24
2)ftable另一種方式是使用ftable和ftable2df。后者在這篇 SO 帖子中定義:
uj5u.com熱心網友回復:
a <- array(1:24, 2:4, dimnames = list(dim1 = c("a", "b"), dim2 = c("A", "B", "C"), dim3 = 1:4))
# make it a data.table in long format
b <- data.table::as.data.table(a)
# just save as any file
# read it back
#convert the data.table back to the 3 dimensional array
c <- xtabs(data = b, formula = value ~ .)
資料
a
# , , dim3 = 1
#
# dim2
# dim1 A B C
# a 1 3 5
# b 2 4 6
#
# , , dim3 = 2
#
# dim2
# dim1 A B C
# a 7 9 11
# b 8 10 12
#
# , , dim3 = 3
#
# dim2
# dim1 A B C
# a 13 15 17
# b 14 16 18
#
# , , dim3 = 4
#
# dim2
# dim1 A B C
# a 19 21 23
# b 20 22 24
b 的輸出寫入 csv 或 xls
b
# dim1 dim2 dim3 value
# 1: a A 1 1
# 2: a A 2 7
# 3: a A 3 13
# 4: a A 4 19
# 5: a B 1 3
# 6: a B 2 9
# 7: a B 3 15
# 8: a B 4 21
# 9: a C 1 5
# 10: a C 2 11
# 11: a C 3 17
# 12: a C 4 23
# 13: b A 1 2
# 14: b A 2 8
# 15: b A 3 14
# 16: b A 4 20
# 17: b B 1 4
# 18: b B 2 10
# 19: b B 3 16
# 20: b B 4 22
# 21: b C 1 6
# 22: b C 2 12
# 23: b C 3 18
# 24: b C 4 24
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/481204.html
下一篇:從嵌套字典中選擇串列中的一些值
