在R中仅绘制7个因子水平中的5个

时间:2014-01-09 09:58:10

标签: r plot

好吧,这可能很容易,没有人写下来(或者我找不到):

我有一个包含7个因子的变量:

[1] "NICHT ERHOBEN"        "STIMME VOLL ZU"       "STIMME EHER ZU"       "STIMME EHER NICHT ZU"
[5] "STIMME GAR NICHT ZU"  "WEISS NICHT"          "KEINE ANGABE"  

我想用绘图(df $ v1,df $ v_with_factors)绘制变量,R就可以了。

在绘图时如何省略第一个(“nicht erhoben”)和最后一个(“keine angabe”)因素?

3 个答案:

答案 0 :(得分:3)

是的,这是一个令人讨厌的尴尬但很常见的任务 - 但你可以使用droplevels

> DF= data.frame(nums=1:8, facs=as.factor(c("A", "A", "B", "B", "C", "C", "D", "D")))
  nums facs
1    1    A
2    2    A
3    3    B
4    4    B
5    5    C
6    6    C
7    7    D
8    8    D

带有空格的方式:

> with(DF[which(DF$facs!="A"),], plot(facs, nums))

enter image description here

> with(droplevels(DF[which(DF$facs!="A"),]), plot(facs, nums))

这是在droplevels之后:

enter image description here

答案 1 :(得分:1)

在绘制之前做一部分数据:subdata< - subset(df $ v1,condition)

答案 2 :(得分:1)

在不知道您的数据究竟如何的情况下,解决方案很可能如下(我目前无权访问R进行测试,但方法应该没问题):

# Indices of all levels of the factor that you want to plot
lindex = which(!(levels(df$v_with_factors) %in% c("NICHT ERHOBEN", "KEINE ANGABE")))
# Indices of all data records that correspond to the selected levels of the factor
index = df$v_with_factors@.Data %in% lindex

plot(df$v1[index], df$v_with_factors[index])