gpt4 book ai didi

r - 如何替换NULL/? r 中的 'None' 或 '0'

转载 作者:行者123 更新时间:2023-12-02 09:23:35 24 4
gpt4 key购买 nike

DF1 是

ID CompareID Distance
1 256 0
1 834 0
1 946 0
2 629 0
2 735 1
2 108 1

预期输出应为 DF2 如下(生成 DF2 的条件 -> 在 DF1 中,对于任何 ID,如果 'Distance'==1,则将相应的 'CompareID' 放入 'SimilarID' 列,对于 'Distance'==0 ,忽略对应的'CompareID')

   ID SimilarID
1 None
2 735,108

比较正确完成,但我得到的输出低于

   ID SimilarID
1 ?
2 735,108

我明白了,因为没有“CompareID”可以放入“SimilarID”中 - ?显示标记。我想替换这个“?”与“无”或“0”。请帮忙在某些情况下,我观​​察到不是“?”我还可以看到“NULL”值。

谢谢!

最佳答案

使用data.table包,其中df是您的原始数据...

library(data.table)
setDT(df)[, .(SimilarID = if(all(Distance == 0)) "None"
else toString(CompareID[Distance == 1])), by = ID]
# ID SimilarID
# 1: 1 None
# 2: 2 735, 108

这通过返回ID来遵循您的预期输出

  • “None” 当所有 Distance 列均为零时
  • Distance 为 1 时的 CompareID 值,以逗号分隔的字符串形式

数据:

df <- structure(list(ID = c(1L, 1L, 1L, 2L, 2L, 2L), CompareID = c(256L, 
834L, 946L, 629L, 735L, 108L), Distance = c(0L, 0L, 0L, 0L, 1L,
1L)), .Names = c("ID", "CompareID", "Distance"), class = "data.frame", row.names = c(NA,
-6L))

关于r - 如何替换NULL/? r 中的 'None' 或 '0',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39840152/

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