好吧,这可能很容易,没有人写下来(或者我找不到):
我有一个包含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”)因素?
答案 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))
> with(droplevels(DF[which(DF$facs!="A"),]), plot(facs, nums))
这是在droplevels
之后:
答案 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])