从data.frame中选择包含相同值的行

时间:2016-02-01 15:29:45

标签: r dataframe subset

我有select incidentnumber, decode(ToiletteType, 'A', 'Automatic Standard', 'P', 'Portable Potty', ToiletteType), toiletdangers, incidentdate from core.lostlawsuits; 有4列不同行数。我用以下文件阅读了文件:

data.frame

我想从每个包含相同值的列中减去行。我的df的colnames是:

df <- as.data.frame(read.table("Drug_Gene.txt", sep="\t", fill=TRUE, header=TRUE))

首先我尝试了:

> colnames(df)
[1] "SOX2"  "EGR1"  "FOS"   "RUNX2"

但我收到了以下错误:

first_two <- df[df$SOX2==df$EGR1, ] # Return those rows which have identical values in theses columns

我认为问题在于不同程度:

Error in Ops.factor(df$SOX2, df$EGR1) : level sets of factors are different

任何人都可以告诉我如何解决这个问题..?谢谢。 为了再现目的,我还提供了一个输入样本:

> str(df)
'data.frame':   329 obs. of  4 variables:
 $ SOX2 : Factor w/ 23 levels "","4-acetylantroquinonol B",..: 2 3 10 4 5 6 14 7 8 9 ...
 $ EGR1 : Factor w/ 127 levels "","(+)-JQ1 compound",..: 5 4 8 6 6 6 6 10 7 11 ...
 $ FOS  : Factor w/ 223 levels "(+)-JQ1 compound",..: 5 6 7 7 7 7 7 7 7 7 ...
 $ RUNX2: Factor w/ 21 levels "","(+)-JQ1 compound",..: 3 3 5 6 7 4 11 11 8 9 ...

所以从这样的输入文件我希望得到以下输出:

SOX2     EGR1     FOS     RUNX2
abc      def      ghi     jkl
abc      jkl      abc     def
jkl      abc      def     abc
lmn               jkl     lmn

因为只有这些是每列中出现的值。

   SOX2     EGR1     FOS     RUNX2
    abc      abc      abc     abc
    jkl      jkl      jkl     jkl

0 个答案:

没有答案