完全删除R中的数据帧行.停止表()为删除的数据返回0

ds1*_*s10 4 r subset dataframe pie-chart

我想从数据帧列中出现的次数中创建一个饼图.但是,在制作饼图之前,我想要删除5个单词.我有一个数据框,我可以使用以下内容删除这些行:

subset(df, tag != "rubbish")
Run Code Online (Sandbox Code Playgroud)

但是,如果我然后使用

pie(table(df$tag)
Run Code Online (Sandbox Code Playgroud)

垃圾仍然出现在饼图中,但是有零实例.

table(df$tag) 在子集之前给了我类似的东西:

tag1  3
tag2  7
rubbish 9
Run Code Online (Sandbox Code Playgroud)

之后:

tag1  3
tag2  7
rubbish 0
Run Code Online (Sandbox Code Playgroud)

无论如何,如果没有table()返回零,完全删除垃圾?我试过,table(df$tag, exclude="rubbish")但我想删除多个标签.

Pau*_*tra 5

我认为问题在于它df$tag是一个因素或分类变量.从因子中删除某个类别不会更改与该因子关联的级别.table迭代与因子相关的水平.即使等级为空table也是如此rubbish 0.解决方案是在删除标记后重新创建因子:

subset(df, tag != "rubbish")
levels(df$tag)
df$tag = factor(df$tag)
levels(df$tag)
table(df$tag)
Run Code Online (Sandbox Code Playgroud)

我认为这应该可以解决你的问题.