使用特定数据框行条目提取R中的列

时间:2015-12-17 14:52:35

标签: r dataframe

我有一个fileA,它是一个包含许多列的基本数据框。

  CHR         SNP       BP  NMISS       BETA       SE        R2       T      P
  22  rs62224314 16057427  118667  0.0064970 0.006882 7.512e-06  0.9442 0.3451
  22 rs200923414 16287551  119802 -0.1338000 0.229400 2.839e-06 -0.5832 0.5598
  22 rs138257221 16449078  119886  0.1082000 0.223600 1.954e-06  0.4840 0.6284
  22 rs149999112 16449613      0         NA       NA        NA      NA     NA

和fileB,它是一个空格分隔的单行文件,看起来像这样

  CHR SNP BP P

我想使用fileB中的值来使用R提取fileA中的相应列。到目前为止我的脚本是这样的:

## read in data file, must have tab separators and header
orig_data = read.table("fileA.txt", header=TRUE,sep="")

## read in column names
names_keep = read.table("fileB.txt", header=F,sep="")

w <- names_keep$V1
x <- names_keep$V2
y <- names_keep$V3
z <- names_keep$V4

当我检查这些值时:

> w
[1] CHR
Levels: CHR
> x
[1] SNP
Levels: SNP
> y
[1] BP
Levels: BP
> z
[1] P
Levels: P

它似乎正在做我想要的(从fileB中提取这4个值)。

但是,当我尝试使用这4个值从fileA数据框中提取这些特定列时:

newdata <- orig_data[,c(w,x,y,z)]

我刚刚重复第一栏4次:

  CHR CHR.1 CHR.2 CHR.3
1  22    22    22    22
2  22    22    22    22
3  22    22    22    22
4  22    22    22    22

当我希望输出看起来像:

  CHR         SNP       BP  P
  22  rs62224314 16057427  0.3451
  22 rs200923414 16287551  0.5598
  22 rs138257221 16449078  0.6284
  22 rs149999112 16449613      NA

有谁知道我在哪里错了?

0 个答案:

没有答案