在 R 中使用 write.fwf 进行 NA 处理

NA handling with write.fwf in R

提问人:Yuhwan Seo 提问时间:10/11/2023 更新时间:10/11/2023 访问量:39

问:

我正在尝试根据如下代码转换矩阵数据以进行数值模拟。 但是,我想保存 NA 值,以便没有空间,但我不知道。 有人可以告诉我吗?

library(gdata)

a <- matrix(c(1 : 6), nrow = 2, ncol = 3)
a[a == 6] <- NA

write.fwf(a, paste0("test.txt"), colnames = F, width = 17, justify = "right", na = "")

enter image description here

r 数据帧

评论

0赞 user2554330 10/11/2023
你想写什么而不是空格?
0赞 Yuhwan Seo 10/11/2023
@user2554330我希望什么都没有。

答:

0赞 user2554330 10/11/2023 #1

在评论中,您澄清了您不想为值输出任何内容。在这种情况下,您没有编写固定宽度格式(因为大多数值需要宽度 17,但 NA 宽度为 0),因此不应使用 .只需设置值的格式,将它们粘贴在一起,然后写下行即可。NAwrite.fwf()

例如:

a <- matrix(c(1 : 6), nrow = 2, ncol = 3)
a[a == 6] <- NA

formatted <- format(a, width = 17)
formatted[grepl("NA", formatted)] <- ""

lines <- apply(formatted, 1, paste0, collapse="")
writeLines(lines, "test.txt")
lines
#> [1] "                1                3                5"
#> [2] "                2                4"

创建于 2023-10-11 使用 reprex v2.0.2