我创建了一个数据框的子集,然后删除了所有级别。但是,最后,我的子数据框仅以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)?
答案 0 :(得分:1)
试试这个:
dfsubset <- sapply( df[5, ] , as.character)