如何根据R中其他列中的值替换数据帧列中的值?

如何根据R中其他列中的值替换数据帧列中的值?,r,if-statement,R,If Statement,我有一个包含100名患者安全数据的数据框。根据具体因素的大小,每个患者都有不同的安全因素 v1_d0_urt_redness v1_d0_urt_redness_size v1_d1_urt_redness v1_d1_urt_redness_size ... P1 1 20 P2 1 NA P3 0 NA . . . 此处redn

我有一个包含100名患者安全数据的数据框。根据具体因素的大小,每个患者都有不同的安全因素

   v1_d0_urt_redness v1_d0_urt_redness_size v1_d1_urt_redness v1_d1_urt_redness_size ...
P1          1              20             
P2          1              NA
P3          0              NA
.
.
.
此处
redness=1
表示有红色,
redness=0
表示没有红色,因此没有报告
redness\u大小。
为了找出缺失数据的比例,我需要对数据进行如下编码:
if(包含redness=1的列和包含redness\u size=NA的列)然后(包含redness\u size的列如果我很了解您正在尝试做什么,并且假设您的数据帧被称为
df
,您可以通过以下操作更改列
redness\u size
的值:


df[df[,endsWith(colnames(df),“\u redness”)]==1&is.na(df[,endsWith(colnames(df),“redness\u size”)]),endsWith(colnames(df),“redness\u size”)]如果我很好地理解您正在尝试做的事情,并且假设您的数据帧被称为
df
,您可以通过这样做来更改列的值
redness\u size


df[df[,endsWith(colnames(df),“\u redness”)]==1&is.na(df[,endsWith(colnames(df),“redness\u size”)),endsWith(colnames(df),“redness\u size”)]谢谢,但是由于每个因素都有5天的时间,是否仍可以使用模式,比如如果名称包含“红色”,那么执行此过程,并在5天内对变量执行此操作。?我使用的是
df[df[,endsWith(colnames(df),“redness”)==0,endsWith(colnames(df),“redness\u size”)]我的colnames是:
“v1\u d0\u urt\redness”“v1\u d0\u lt\u redness”“v1\u d1\u urt\u redness”“v1\u d2\u urt\u redness”“v1\u d2\u lt\u redness”“v1\u urt\u redness\u size”“v1\u d0\u urt\u redness\u size”“v1\u d1\u urt\u redness\u redness\u size”“v1\u d1\u lt\u redness\u redness\u size”“v1\u d2\u redness\u redness\u size”
我得到了正确的列,但前面的代码不起作用。我用更新的变量名编辑了问题,并检查了摘要(df)。好的,我相应地修改了我的答案。您是否仍然有相同的问题?两行都不起作用?您是否检查了colnames
redness
是否为数字格式?您也可以尝试只运行
df[df[,endsWith(colnames(df),“\u redness”)==1&is.na(df[,endsWith(colnames(df),“redness\u size”)],endsWith(colnames(df),“redness\u size”)]
要查看返回了哪些行,谢谢,但是由于每个因素都有5天的时间,是否还需要使用模式,比如如果名称包含“红色”,则执行此过程,并在5天内完成变量的操作。?我使用的是
df[df[,endsWith(colnames(df),“redness”)==0,endsWith(colnames(df),“redness\u size”)]我的名字是:<代码>我的名字是:<代码>我的名字是:<代码>我的名字是:<代码>我的名字是:<代码>我的名字是:<代码>我的名字是:<代码>我的名字是:<代码>我的名字是:<代码>我的名字是:<代码>我的姓名是:<代码>我的姓名:<代码>我的名字“v1你们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们的名字::::::::<代码是红色红色红色度度度度度度度度“v1你们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们们),“红色”)]
我得到了正确的列,但前面的代码不起作用。我用更新的变量名编辑了问题,并检查了摘要(df)。好的,我相应地修改了我的答案。您是否仍然有相同的问题?两行都不起作用?您是否检查了colnames
redness
是否为数字格式?您也可以尝试只运行
df[df[,endsWith(colnames(df),“\u redness”)==1&is.na(df[,endsWith(colnames(df),“redness\u size”)],endsWith(colnames(df),“redness\u size”)]
要查看返回了哪些行,我会根据您的重新请求编辑我的答案。让我知道它对您的数据集有效。我会根据您的重新请求编辑我的答案。让我知道它对您的数据集有效