我正在使用代码行writeClipboard(gsub(" +", "\t", capture.output(print(nested_list, max = 1e6))))
将列表对象nested_list
复制/粘贴到Excel。当嵌入矩阵列名中没有空格时,代码工作正常,但如果嵌入矩阵列名中有空格,则在粘贴时错误地添加列。我在下图的左侧显示了正确的R studio输出,使用下面图像中间的上述代码行复制/粘贴到Excel时的错误输出,以及下面图像右侧的Excel中的所需输出。我最好保留原始矩阵列名中的空格,第二个最好的情况是用下划线“_"替换那些空格。有什么建议吗?
生成nested_list
的代码在这篇文章的底部。
x1c 0d1x的数据
代码:
nested_list <- list(
A = list(
B = list(
C = matrix(1:6,2,3, dimnames = list(NULL,c("Big Bob","Fat Tom","Old Rob"))),
D = matrix(7:8,2,1, dimnames = list(NULL,"Ink"))
),
E = matrix(9:16,2,4, dimnames = list(NULL,c("Dog","Fat Cat","Rat","Bat")))
),
F = list(
G = matrix(17:22,2,3, dimnames = list(NULL,c("Sue","Peg","Jen"))),
H = matrix(23:28,2,3, dimnames = list(NULL,c("AAA","BBB","CCC")))
),
I = matrix(1:4,2,2, dimnames = list(NULL,c("Big Fat","Pig")))
)
字符串
1条答案
按热度按时间vfhzx4xs1#
你需要
1.首先用一个保证不会出现在名称/值中的字符替换列/行名称中的空格(如果嵌套值包含带空格的文本,则可能还包括值)
1.将
capture.output
中的空格替换为制表符1.将掩码字符替换回空格。
rapply
可以帮助您处理嵌套结构,字符串
为了使它更加防弹,您需要将相同的逻辑应用于嵌套列表本身的名称(想想
nested_list <- c(nested_list, "non syntactic name" = matrix(1:4, 2, 2)
),但如果您可以控制插槽名称/不关心Excel中的错误列表名称,则可能没有必要。