使用R,我想比较两列中的值,如果值相等,我想保持它们原样,如果值不同,我想对两列中的值求和。这似乎是一个简单的操作,但我不知道如何做到,已经找到类似的帖子SO,但不完全是这样。如果有其他的东西可能?
示例df:
structure(list(colA = c(0, 0, 0, 412.99, 34.43, 117.36, 193.05,
305.22), colB = c(0, 0, 0, 412.99, 6.89, 0, 193.05, 305.22)), class = "data.frame", row.names = c(1323L,
5426L, 2772L, 7241L, 2547L, 874L, 5908L, 6830L))
如果A和B的值不同(在本例中,求和34.43和6.89(对于行2547)并保持412.99(行7241;因为colA和colB的值相同)。另外,具有另一列(例如“colD”)将是有帮助的,该列以某种方式声明行是否相同(以知道哪些obs不同)。
我的实际df有10,000+个观测值和30+个变量(列)。我只想比较30多个列中的两列。谢谢你。
2条答案
按热度按时间ldxq2e6h1#
ifelse()
可能会有帮助。创建于2023-06-19带有reprex v2.0.2
uxhixvfz2#
使用
data.table
:选项1:如果行名称很重要,则使用
setDT(df, keep.rownames = TRUE)
选项2:类似于@Grzegorz Sapijaszko的答案