【问题标题】:How to reformat a conditional density plot in R?如何在 R 中重新格式化条件密度图?
【发布时间】:2013-02-02 16:43:59
【问题描述】:

以下可重现的示例创建了一个conditional density plot,描述了方面的变化。我在示例中包含了 NoData,因为我的原始数据集也包含 NoData。

aspect = c("N", "N", "E", "S", "SW", "SW", "E", "W", "N", "N")
change = c(-1, NA, 1, NA, 1, 1, -1, 1, -1, NA)
mydata = data.frame(aspect,change)

x = factor(mydata$change)

cdplot(x~mydata$aspect)

相关问题:

  • 如何将 X 轴上的数值替换为 关联的文本值(例如 N、SW 等)?
  • 是否可以控制文本值的顺序 X轴?我相信,默认情况下,X 轴上的值对应 到“方面”中按字母顺序排列的文本值。
  • 如何将 X 轴上的“NA”替换为“No Change”?

【问题讨论】:

  • 我对这种类型的情节一无所知,但从帮助页面来看,你做错了。引用:“计算并绘制条件密度,描述 分类变量 y 的条件分布如何随 数值变量 x 变化。”
  • @Roland 在这种情况下,y 变量是分类变量(即正或负变化),x 变量转换为纵横比的频率,这是一个数值变量。
  • mydata$aspect不是numeric,而是factor,当您将character vector 放入data.frame 时创建。然后该函数将factor 强制为numeric。在帮助页面上的示例中,x 是numeric(温度)。如果aspect 可以表示为numeric,你应该这样做。

标签: r graphics plot


【解决方案1】:

只是为了显示@Roland 在 cmets 中所说的内容,您以错误的方式使用了该功能。

aspect = c("N", "N", "E", "S", "SW", "SW", "E", "W", "N", "N")
change = sample(rep(c(-1,1,NA), each = 100),100,replace=T)
mydata = data.frame(aspect,change,stringsAsFactors=T)
str(mydata)
'data.frame':   100 obs. of  2 variables:
 $aspect: Factor
$change: num 
h <- cdplot(aspect~change, data = mydata)

现在 h 包含了方面水平上的条件密度函数。

str(h)
List of 4
 $ E :function (v)  
 $ N :function (v)  
 $ S :function (v)  
 $ SW:function (v)  

例如

h$E(-Inf)
[1] 0.21875
h$E(Inf)
[1] 0.25

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 1970-01-01
    • 2011-10-06
    • 2021-11-09
    相关资源
    最近更新 更多