如何绘制R中的重复值

时间:2017-03-22 10:36:55

标签: r plot

我正在尝试在R中实现一个数组,但为所有x值绘制相同的y值。如果值为NA,则不应绘制 我尝试了下面的图表,显示了所有10个值的直方图。

plot(c(1,2,NA,3,4,5,3,NA,2,4),type='h', ylim=c(0,4))

但是,对于下面的情况,当我尝试控制y值时,图中不会考虑重复的值。

plot(c(1,2,NA,3,4,5,3,NA,2,4), rep(1,10),type='h', ylim=c(0,4))

这可以用绘图功能吗?请建议是否可以使用替代方案。

2 个答案:

答案 0 :(得分:0)

请再次查看?plot的帮助页面。

在第二行中,您可以在x值1到5处绘制y值1。您获得的图表正是您要求的图表,而不是您所关注的图表。在第一个图中,您的值被解释为y值,而不是x值。图中的x值只是第一个示例中的索引。

如果您希望未在NA值处绘制线条,请执行以下操作:

x <- c(1,2,NA,3,4,5,3,NA,2,4)
plot(!is.na(x), type = 'h')

现在,只要有值,就会绘制TRUE(值为1),只要没有值,就会FALSE(转换为0)。

这与:

完全相同
xx <- ifelse(is.na(x),0,1)
plot(xx, type = 'h')

旁注:请不要将其称为直方图。直方图表示箱的计数,这甚至不接近。

答案 1 :(得分:0)

let data = [
  {
    name : 'Item 1', qty: 2, price: 15.50 // 31
  },
  {
    name : 'Item 2', qty: 17, price: 25.13 // 427.21
  }, 
  {
    name : 'Item 3', qty: 102, price: 8.00 // 816
  }
];

function getSubTotal (items) {
  const fn = (total, { price, qty }) => total + price * qty;
  
  return items.reduce(fn, 0);
}

console.log(getSubTotal(data));