【问题标题】:How to write a space delimited txt file in R? [closed]如何在 R 中编写空格分隔的 txt 文件? [关闭]
【发布时间】:2018-10-05 16:11:04
【问题描述】:

我很困惑,因为我需要写一个空格分隔的txt文件,但是列必须用空格分隔......

例如,这是我生成空格分隔文件的脚本

write.table(main_analysis_covariate,"main_analysis_covariate.txt",
            col.names=T, quote=F,sep=" ")

head(main_analysis_covariate)
      FID     IID        V3      V4        V5         V6          V7        V8
1 1004951 1004951 -13.53970 3.63737 -2.615650  3.4962900 -0.27603800 -0.709574
2 1006785 1006785  -9.66567 2.49221 -0.391967 -0.0871995 -0.65907700 -0.181312
3 1007378 1007378 -12.97970 3.78742  1.228940 -0.9096680  0.83237900  1.973190

但我想要一个看起来像这样的文件

FID IID phenotype1 covariate1 covariate2
123456 123456 100 1 1
234567 234567 20 2 1
345678 345678 50 3 NA

【问题讨论】:

  • 问题有点不清楚。您能否使用x <- head(main_analysis_covariate); dput(x) 的结果编辑您的帖子,以便我们更好地了解您的数据?
  • 有什么问题?看起来这个示例文件确实具有由单个空格分隔的值。您是否想要制表符分隔?
  • 很抱歉给您带来了困惑。我编辑了我的问题,我希望文件看起来像第二个,但在我得到的第一个表中,它看起来像制表符分隔...
  • 但是head(main_analysis_covariate) 不会显示.txt 文件,它会显示R 数据框。 txt 文件是什么样的?
  • 啊,我明白了,我在linux中打开了txt文件,它是正确的格式。我对 R 中的数据框看起来不同感到困惑。非常感谢!

标签: r file text


【解决方案1】:

使用最后注释中定义的DF试试这个(你需要用你的文件名替换stdout()):

write.table(DF, stdout(), quote = FALSE, row.names = FALSE)

给予:

FID IID phenotype1 covariate1 covariate2
123456 123456 100 1 1
234567 234567 20 2 1
345678 345678 50 3 NA

注意

Lines <- "FID IID phenotype1 covariate1 covariate2
123456 123456 100 1 1
234567 234567 20 2 1
345678 345678 50 3 NA"
DF <- read.table(text = Lines,  header = TRUE)

【讨论】:

    猜你喜欢
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 2022-12-07
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 2013-05-05
    • 1970-01-01
    相关资源
    最近更新 更多