检查列值是否影响R中的行值

时间:2018-11-12 02:47:01

标签: r

我想比较两行并确定一列是否影响该值。

例如,假设我在R中有以下数据表:

 "The application failed to start (exited with code 1).

  Error in value[[3L]](cond) : there is no package called ‘xxxxxx’
  Calls: local ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
 Execution halted"

现在,比较第2行和第3行,我们看到,当买方为A时,行值3发生了变化,因此可以说买方影响了“交易量”列中的值。有快速/简便的方法来做到这一点吗?预先感谢

2 个答案:

答案 0 :(得分:2)

这是一个使用基数R的解决方案。对象test仅测试数量何时变化并有助于获得相应的购买者。了解您想要的输出结构会有所帮助。

df <- data.frame(Volume = c(100, 100, 200, 200),
                 Buyer = c(0, "A", 0, 0),
                 stringsAsFactors = F)

test <- diff(df$Volume) > 0

influential_buyers <- unique(df$Buyer[test])

influential_buyers
[1] "A"

sum(test) # gives number of total changes
[1] 1

which(test) # gives row number of changes
[1] 2

答案 1 :(得分:0)

您可以使用图形执行此操作。这样一来,您不仅可以轻松地看到哪个买方在产生影响,而且还可以看到影响的程度。

重新创建代码

注意:我对玩具示例进行了一些扩展,以更好地说明这一想法

library(tidyverse)

df <- data.frame(
  Volume = c(100, 100, 200, 200, 200, 250, 250),
  Buyer = LETTERS[1:7],
  stringsAsFactors = F
)

代码

ggplot(df, aes(Buyer, c(0, diff(df$Volume)))) +
  geom_count() +
  ylab("Buyer effect") +
  theme_light() +
  theme(legend.position = "none")

enter image description here