【问题标题】:How to split unequal columns in R如何在R中拆分不相等的列
【发布时间】:2012-03-09 17:08:09
【问题描述】:

我有一个应该包含 14 列的数据集,但是当我将它读入 R 时,它显示为两列,后面的列读入为一列,并且都用“。”分隔。

我使用:

dat

下面我提供了输出:

头(数据)

V1
特质
案例
案例
案例
案例
案例
案例

V2 MARKER........等位基因..FREQ1....RSQR...EFFECT1..OR......STDERR..​​WALDCHISQ.PVALUE....LRCHISQ.LRPVAL.NCASES。 NCONTROLS
rs7 T A .9104 .0001 -3.944 0.019 19.634 0.0403 0.8408 0.0403 0.8409 260 446

rs6 交流电 .9114 .0002 -2.552 0.078 14.349 0.0316 0.8589 0.0316 0.8589 260 446

rs9 C T .8444 .0001 2.772 15.985 15.076 0.0338 0.8541 0.0338 0.8542 260 446

rs5 G A .9164 .0001 -3.683 0.025 18.039 0.0417 0.8382 0.0417 0.8383 260 446

rs2 T C .5168 .0001 -2.466 0.085 10.811 0.0520 0.8195 0.0520 0.8196 260 446

rs1 T G .8229 .0002 -1.727 0.178 12.241 0.0199 0.8878 0.0199 0.8878 260 446

我尝试了一些事情(重写表格,colsplit)但没有成功。我错过了什么?

感谢您提出的任何建议!

【问题讨论】:

  • 你应该展示你用来读取数据的代码,以及原始数据的样子,更加注意格式,所以它是可读的。
  • 好的,谢谢乔兰。我是该站点的新手,我刚刚找到了文本编辑器工具栏,可以让您在不丢失格式的情况下发布代码。非常有用。

标签: r database-design split tapply


【解决方案1】:

您以为您有一个制表符分隔的文件,但事实并非如此。你也有一个标题。只需通过删除sep="\t" 并设置header=TRUE 来使用默认的空白分隔符。

【讨论】:

  • 谢谢!我现在遇到的问题是实际数据是制表符分隔的(并且还有一些缺失值),它只是由“。”分隔的标题行。所以,如果我从代码中删除 sep="\t" ,我会在扫描中收到错误:扫描错误(文件,内容,nmax,sep,dec,quote,skip,nlines,na.strings,:第 233669 行没有没有 15 个元素。
  • 您可能应该使用readLines 读取第一行,根据需要将其拆分,然后使用skip=1input <- read.table,然后使用names(input) <- ...处理后的标头向量。
  • 我不熟悉 readLines,这是一个很好的资源。再次感谢!我最终解决了我的问题: dat
【解决方案2】:

如果没有更多信息,很难确定,但我非常有信心解决这个问题的最佳方法是首先正确加载表格。除非你正在加载的数据的实际结构是你得到的形式,否则你加载它是错误的;查看read.table 和相关方法的文档,特别是sepheader 参数。我猜这将解决您的数据导入问题,而无需事后清理。

【讨论】:

    猜你喜欢
    • 2021-11-02
    • 1970-01-01
    • 2018-03-29
    • 1970-01-01
    • 2022-11-21
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多