删除数据框中的级别时出现问题

时间:2015-07-20 22:25:52

标签: r dataframe

我创建了一个数据框的子集,然后删除了所有级别。但是,最后,我的子数据框仅以1(1)结束。

我创建了一个数据框的子集,如下所示:

dfsubset <- df[5, ]
  X1      X2        X3       X4          X5                 X6         X7                    
  NA    Name     Series No Category Series Name    Series Description Unit

然而,当我检查新创建的数据集时,我发现有很多级别:

str(dfsubset)
'data.frame':   1 obs. of  23 variables:
 $ X1 : num NA
 $ X2 : Factor w/ 3 levels "xxxx","xxxxx",..: 3
 $ X3 : Factor w/ 171 levels "1","10","100",..: 171
 $ X4 : Factor w/ 21 levels "xxxx","xxxx",..: 4
 $ X5 : Factor w/ 172 levels "xxxxxx",..: 132
 $ X6 : Factor w/ 172 levels "xxxxxxx",..: 138
 $ X7 : Factor w/ 36 levels "%","±%","Binary",..: 36

因此,我使用了droplevels函数,希望我的数据框只保留我需要的信息(名称,系列号,类别,系列名称,系列描述,单位)

然而,我的数据框只有1(1)

    dfsubset <- droplevels(dfsubset)     
str(dfsubset)
     $ X1 : num NA
     $ X2 : Factor w/ 1 level "Utility": 1
     $ X3 : Factor w/ 1 level "Series No": 1
     $ X4 : Factor w/ 1 level "Category": 1
     $ X5 : Factor w/ 1 level "Series Name": 1
     $ X6 : Factor w/ 1 level "Series Description": 1
     $ X7 : Factor w/ 1 level "Unit": 1

现在,我尝试使用新数据框,并在函数names(df) <- subsetdf中删除了级别,而我得到的只是列名称中的级别。

如何最终得到一个包含我需要的信息(名称,系列号,类别等)的数据框,而不仅仅是names(df) <- subsetdf函数中使用的1(1)?

1 个答案:

答案 0 :(得分:1)

试试这个:

  dfsubset <- sapply( df[5, ] , as.character)