Скажем, у меня есть этот dataframe z
:Ошибка при замене значения в кадре данных НСБУ
x <- c("NS","NS",NA)
y <- c("yes","yes","b")
z <- as.data.frame(cbind(x,y), stringsAsFactors=FALSE)
> z
x y
1 NS yes
2 NS yes
3 <NA> b
Я просто хочу, чтобы изменить значения, которые содержат "yes"
элемент в "a"
. Если я делаю это я получаю сообщение об ошибке:
z[z$x=="NS","yes"]<-"a"
Error in `[<-.data.frame`(`*tmp*`, z$x == "NS", "yes", value = "a") :
missing values are not allowed in subscripted assignments of data frames
Потому что по какой-то причине я получаю dataframe с НС, хотя я подмножество только "NS"
. Если удалить NA
, я получаю другую ошибку:
na.omit(z[z$x=="NS","a"])<-"no"
Error in na.omit(z[z$x == "NS", "a"]) <- "no" :
could not find function "na.omit<-"
Может 'г [г $ х == "NS", "у"] <-" «? Или, может быть, 'z [z $ y ==" yes "," y "] <-" a "' – zx8754
, когда вы используете 'z [z $ x ==" NS "," yes "] <-" a " вы пытаетесь присвоить «a» столбцу «да», а строки «z $ x ==» NS », что вы хотите, это' z [z $ x == "NS", "y"] <- "a "' – DUWUDA
также у вас, вероятно, будет проблема заменить «да» на «а», так как в настоящее время «z $ y» является фактором. взгляните на параметр 'stringsAsFactors'. Кроме того, из-за 'NA' в' z $ x', вероятно, лучше использовать '% in %' вместо' == ' – Cath