gpt4 book ai didi

r - 如果满足条件,则减去数据框中的两列

转载 作者:行者123 更新时间:2023-12-04 12:19:25 24 4
gpt4 key购买 nike

我的数据框:

Dead4   Dead5
0 0
0 0
0 0
1 2
0 0
0 0
1 2
0 0
1 0
0 1
1 1
5 10

我希望我的代码在同一行中任何时候 Dead5 大于 Dead4 减去这两个值并将该值放入 Dead5

indices<- (t$Dead5 > t$Dead4) 
t$Dead6[indices]<- (t$Dead6) - (t$Dead5)


Warning message:
In t$Dead6[indices] <- (t$Dead6) - (t$Dead5) :
number of items to replace is not a multiple of replacement length

有人可以解释我做错了什么并帮我写几行代码来解决这个问题吗?

最佳答案

你可以这样做:

indices <- (t$Dead5 > t$Dead4) # indices is a logical vector with TRUE and FALSE

t$Dead5[indices] <- (t$Dead5 - t$Dead4)[indices]

它也适用于您的 data.frame 的任何其他操作,例如:

t$Dead6[indices] <- (t$Dead6 - t$Dead5)[indices]

如果 Dead6 列存在。在每一侧,仅采用 indicesTRUE 的值,因此替换值和替换值的长度相同,您不会收到警告。

你做错的是你给出了完整的 (t$Dead5 - t$Dead4) 向量作为替换,它比 indices 的次数长> 为 TRUE(左侧的替换值)。

R 仅使用替换向量的第一个值并向您发出警告。

关于r - 如果满足条件,则减去数据框中的两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21320559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com