2015-05-14 4 views
0

Я знаю, как сделать заготовки в NA «с с помощью следующего кода:заменить NA с данными из другого столбца в R

IMILEFT IMIRIGHT  IMIAVG 
     NA   NA   NA 
     NA 71.15127   NA 
72.18310 72.86607 72.52458 
70.61460 68.00766 69.31113 
69.39032 69.91261 69.65146 
72.58609 72.75168 72.66888 
70.85714   NA   NA 
     NA 69.88203   NA 
74.47109 73.07963 73.77536 
70.44855 71.28647 70.86751 
     NA 72.33503   NA 
69.82818 70.45144 70.13981 
68.66929 69.79866 69.23397 
72.46879 71.50685 71.98782 
71.11888 71.98336 71.55112 
     NA 67.86667   NA 

IMILEFT <- ((ASLCOMPTEST$LHML + ASLCOMPTEST$LRML)/(ASLCOMPTEST$LFML + 
      ASLCOMPTEST$LTML)*100) 
IMILEFT <- sapply(IMILEFT, as.character) 
IMILEFT[is.na(IMILEFT)] <- "" 

Но когда я делаю этот код, он не позволит мне сделать в среднем «IMILEFT» и «IMIRIGHT» или сделать «IMIAVG» таким же, как и другой столбец с числовым значением.

IMIAVG<-((IMILEFT + IMIRIGHT)/2) 

Ошибка в IMILEFT + IMIRIGHT: нечисловой аргумент для бинарного оператора

Он также будет та же ошибка, если я сделаю это as.numeric

+0

Я новичок в этом форуме, но я запутался, почему вопрос был отредактирован, и моя вежливость (говоря спасибо в конце) была отредактирована. Я хотел бы поблагодарить всех, кто рассмотрел этот вопрос и ответил или ответил. – Jackie

+3

привет, добро пожаловать на мой вопрос, спасибо, пожалуйста, помощь и т. Д. И т. Д., Как правило, не нужны в этих частях. Вежливость подразумевается, и приветствия/тонкости обычно редактируются, если вопрос нужно отредактировать по какой-то другой причине. Не принимайте это лично :-) – thelatemail

+0

@thelatemail Я не настолько уверен, что в этом здесь лесится вежливость;) Я видел довольно грубые грани –

ответ

1

Попробуйте следующее. Оставьте NA с, как они

, если у вас есть строки были оба столбца NA, то есть знаменатель быть

pmin(1, 2 - (is.na(L) + is.na(R))) 
+0

К сожалению @ricardo это не сработало. он сделал столбцы -2.0000 – Jackie