我想比较两行并确定一列是否影响该值。
例如,假设我在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发生了变化,因此可以说买方影响了“交易量”列中的值。有快速/简便的方法来做到这一点吗?预先感谢
答案 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")
图