【问题标题】:Getting rid of NA data points to create boxplot摆脱 NA 数据点以创建箱线图
【发布时间】:2020-05-21 04:08:13
【问题描述】:

我正在尝试为这组并排的箱线图摆脱我的幻影箱线图。我知道它来自缺失的性别数据,但是,我无法弄清楚我在代码中插入的位置!is.na(ny$Gender)。 这是我的代码和图表:

boxplot(ny$age ~ ny$Gender, col="orange", main="Distribution of age
                 and gender", ylab="Number of Users", xlab="Gender")

【问题讨论】:

  • 你可以做boxplot(age ~ Gender, ny, at = c(NA, 1:2))
  • 所以,这行得通!!!!我必须解决这个问题,但谢谢!
  • @rawr 可能会作为答案发布?
  • 很乐意,但没有我可以点击您的答案旁边的复选标记。

标签: r boxplot na missing-data graphing


【解决方案1】:

您的数据框中的 Gender 列下似乎有空白,这就是您得到一个额外框的原因。

查看我的可重现示例以了解问题所在以及如何消除它。在此示例中,activ 代表 Gendertime 代表 age

attach(beaver2)

#View data
head(df)
> head(beaver2)
  day time  temp activ
1 307  930 36.58     0
2 307  940 36.73     0
3 307  950 36.93     0
4 307 1000 37.15     0
5 307 1010 37.23     0
6 307 1020 37.24     0

#rename the dataframe df
df <- beaver2

#introduce five blank spaces in the activ column to match your data 
 df[1:5,4] <- ""

#Visualize new dataframe
head(df)
  day time  temp activ
1 307  930 36.58      
2 307  940 36.73      
3 307  950 36.93      
4 307 1000 37.15      
5 307 1010 37.23      
6 307 1020 37.24     0

#Create boxplot with dataframe with blank spaces 

boxplot(df$time ~ df$activ, col="orange", main="Distribution of age 
and gender", ylab="Number of Users", xlab="Gender")

去掉空格后,你会得到一个正常的箱线图

df$activ[which(df$activ=="")] <- NA

#create new boxplot
boxplot(df$time ~ df$activ, col="orange", main="Distribution of age
             and gender", ylab="Number of Users", xlab="Gender")

【讨论】:

  • 我收到此错误消息:将您的建议与我的代码结合使用时:> ny% filter(Gender=="Female" | Gender=="Male) + + boxplot( ny$age ~ ny$Gender, col="orange", main="年龄和性别分布", ylab="Number of Users", xlab="Gender") 错误:出现意外符号:“ny% filter(Gender=="Female" | Gender=="Male) + boxplot(ny$age ~ ny$Gender, col="orange"
  • 对不起,我忘了提到 df 是数据框的新名称,因此在您的代码中将 ny 替换为 df 或者您可以将我的代码重写为 ny &lt;- ny %&gt;% filter... 我给了数据框一个新名称,以防您不想永久更改原来的名称
  • 感谢您的澄清。我这样做了-但仍然出现错误消息(见上文)ny% filter(Gender=="Female" | Gender=="Male)+ boxplot(ny$age ~ ny$Gender, col="orange ", main="年龄和性别分布", ylab="Number of Users", xlab="Gender") 错误:“ny% filter(Gender=="Female" | Gender= ="男)+箱线图(ny$age ~ ny$Gender, col="橙色"
  • 你是用一行代码还是两行单独的代码来做?看来您有一个+。尝试在一行中使用过滤器,然后在第二行代码中使用箱线图。我会修改我的答案
  • 两行,用+号连接
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-10
  • 1970-01-01
相关资源
最近更新 更多