R:错误 - ' by'必须指定唯一有效的列

时间:2018-05-07 08:45:13

标签: r merge text-files

我可以理解,这可能早先以某种形式得到了解答,但我对这些解决方案没有任何好运。如果你能帮助我,那就太棒了。

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

ID|C1|C2|C3

ID1|a|b|c

ID2|d|e|f

基本上,两个txt文件中的各列用" |"

分隔

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

另请参阅下面的代码。

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                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      

1 个答案:

答案 0 :(得分:1)

通过向header中的参数read.delim()提供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 ,您拥有文件第一行中的正确标头:

void test(int test) {
    printf("%x %x %x %x %x %x %x %x\n");
    printf("%x %x %x %x %x %x %x %n\n");
    printf("%x %x %x %x %x %x %x %x\n");
    if (test == 1) {
        printf("BOO\n");
    } else {
        printf("YEE\n");
    }

}

int main() {
    int a = 1;
    test(a);
    return 0;
}