我正在尝试将单元格值从StudyID列拉至空单元格SigmaID列,但输出遇到一个奇怪的问题。
这是我的数据在运行命令之前的样子。
StudyID Gender Region SigmaID
LM24008 1 20 LM24008
LM82993 1 16 LM28888
ST04283 0 44
ST04238 0 50
LM04829 1 24 LM23921
ST91124 0 89
ST29001 0 55
我尝试通过三种方式编写语法来完成此操作,因为我不确定逻辑设置方式是否存在问题。这三个都产生相同的输出。
df$SigmaID <- ifelse(test = df$SigmaID != "", yes = df$SigmaID, no = df$StudyID)
df$SigmaID <- ifelse(df$SigmaID == "", df$StudyID, df3$SigmaID)
df %>% mutate(SigmaID = ifelse(Gender == 0, df$StudyID, df$SigmaID)
输出:不是从StudyID列中提取值,而是填充一到四位数字。
StudyID Gender Region SigmaID
LM24008 1 20 LM24008
LM82993 1 16 LM28888
ST04283 0 44 5
ST04238 0 50 4908
LM04829 1 24 LM23921
ST91124 0 89 209
ST29001 0 55 4092
我尝试将空白空间重新编码为NA,然后在逻辑中调用NA,但这产生了与上述相同的输出。我想知道它是否与变量类型或变量属性有关,并且在读取StudyID中的字符时出现了一些问题。感谢您对此问题的反馈!
这里是怎么做:
df$SigmaID[df$SigmaID == ""] = df$StudyID[df$SigmaID == ""]
[df[df$SigmaID == ""]
仅选择SigmaID==""
]的行>
我也建议使用data.table
代替data.frame
。