【问题标题】:R: Error - 'by' must specify a uniquely valid columnR:错误 - 'by' 必须指定唯一有效的列
【发布时间】:2018-05-07 08:45:12
【问题描述】:

我可以理解,这可能已经以某种形式较早地得到了回答,但我对解决方案没有任何运气。如果您能帮我解决这个问题,那就太好了。

我有两个 txt 文件,我想合并它们。文件格式如下:

ID|C1|C2|C3

ID1|a|b|c

ID2|d|e|f

基本上,两个txt文件中的各个列都用“|”隔开

当我使用 merge 合并两个文件时,显示的错误消息是 'by' 必须指定唯一有效的列。

另请参阅下面的代码。

mydata_1 <- read.delim("file_1.txt", skipNul = TRUE, sep = "|", header = FALSE, row.names = NULL)
mydata_2 <- read.delim("file_2.txt", skipNul = TRUE, sep = "|", header = FALSE, row.names = NULL)
merge(x=mydata_1, y=mydata_2, by = "ID", all = TRUE)

编辑 - 分享几行实际数据以方便参考。

文件 1

MS|T1|T2|T3|T4|T5|T6|T7|T8|T9|T10|T11|T12|T13|T14|T15|T16|T17|T18|T19|T20|T21
1|646.25|129.966666666666666666666666666666666667|67.1|19.3|0|281.5|0|227.25|126|0|0|7.5|0|0|10.5|3|0|6|600|NO|2G                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
2|573.24|91.2666666666666666666666666666666666667|23.0833333333333333333333333333333333333|3.3|3.703466796875|205|0|84.75|36|37.49|210|0|0|0|0|0|0|14|640|YES|3G                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
3|955.63|1163.93333333333333333333333333333333333|2.11666666666666666666666666666666666667|5.58333333333333333333333333333333333333|0|248|600|8.25|91.88|0|0|7.5|0|0|0|3|0|21|1050|NO|2G                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
4|906|306.666666666666666666666666666666666667|24.75|7.35|0|663.5|0|123|63|0|0|2.5|0|0|0|1|0|21|1050|NO|2G                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
5|147.6|29.4833333333333333333333333333333333333|21.45|0|0|75.6|0|63|0|0|0|9|0|0|0|3.6|0|3|150|NO|2G

文件 2

MS|T1|T2|T3|T4|T5|T6|T7|T8|T9|T10|T11|T12|T13|T14|T15|T16|T17|T18|T19|T20|T21
1|100346.25|129.966666666666666666666666666666666667|167.1|19.3|0|281.5|0|227.25|126|0|0|7.5|0|0|10.5|3|0|6|600|NO|2G                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
2|73.24|91.2666666666666666666666666666666666667|203.0833333333333333333333333333333333333|3.3|3.703466796875|205|0|84.75|36|37.49|210|0|0|0|0|0|0|14|640|YES|3G                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
3|955.63|1163.93333333333333333333333333333333333|2.11666666666666666666666666666666666667|5.58333333333333333333333333333333333333|0|248|600|8.25|91.88|0|0|7.5|0|0|0|3|0|21|1050|NO|2G                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
4|906|306.666666666666666666666666666666666667|24.75|7.35|0|663.5|0|123|63|0|0|2.5|0|0|0|1|0|21|1050|NO|2G                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      

【问题讨论】:

  • 您要合并MS 上的文件吗?您的预期输出是什么?

标签: r merge text-files


【解决方案1】:

您已通过将FALSE 提供给read.delim() 中的参数header 来指定文件不包含变量名称作为其第一行。结果没有列ID

text <- "ID|C1|C2|C3
ID1|a|b|c
ID2|d|e|f"

header = FALSE 没有列ID

read.delim(text = text, sep = "|", header = FALSE)

   V1 V2 V3 V4
1  ID C1 C2 C3
2 ID1  a  b  c
3 ID2  d  e  f

使用header = TRUE,您的文件第一行中的标题正确:

read.delim(text = text, sep = "|", header = TRUE)
   ID C1 C2 C3
1 ID1  a  b  c
2 ID2  d  e  f

【讨论】:

  • 我确实尝试过使用 header = TRUE,但它不起作用。
  • 它适用于您提供的示例数据。你可能想看看这个:stackoverflow.com/questions/5963269/…
  • 我想分享每个文件的 5 行数据,以便更具代表性,但是字符数限制不允许我这样做 - 有解决办法吗?
  • 我在原始问题中粘贴了几行数据 - 请检查
  • 这很简单:两个文件都没有ID 列,您可能希望在合并中将其更改为MSheader = TRUE 阅读效果很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-25
  • 1970-01-01
  • 2022-06-14
  • 2021-11-27
  • 2018-09-23
  • 1970-01-01
  • 2021-02-13
相关资源
最近更新 更多