Предупреждающие сообщения: 1: Неизвестный или неинициализированный столбец в R - PullRequest
0 голосов
/ 28 марта 2020

У меня есть , подобный этому,

AID=c("9671608","9671618","9677162")
dep=c(23,45,12)
t8=c(1,0,2)
a1_sum=c(2,10,1)

dataall=data.frame(AID,dep,t8,a1_sum)
    > dataall
      AID dep t8 a1_sum
1 9671608  23  1      2
2 9671618  45  0      10
3 9677162  12  2      1

Я изменил значение a1_sum во втором ряду следующим образом,

dataall$a1_sum[dataall$AID=="9671618"]=1

I сделал это успешно, но я получаю следующее предупреждение, даже когда иногда запускаю другой код, связанный с этими данными, следующим образом:

Предупреждающие сообщения: 1: Неизвестный или неинициализированный столбец: 'a1_sum '.

В чем может быть причина этого?

Спасибо.

1 Ответ

1 голос
/ 29 марта 2020

Я бы предложил следующее:

РЕДАКТИРОВАТЬ : поскольку @ r2evans справедливо указал, что лучше использовать if_else вместо case_when, когда есть только одно условие:

library(dplyr)
dataall <- dataall %>% dplyr::mutate(a1_sum = dplyr::if_else(AID == "9671618", 1, a1_sum)

или data.table решение:

library(data.table)
dataall <- data.table::setDT(dataall)
dataall[AID =="9671618", a1_sum :=  1]

...