Вы можете использовать этот «трюк»:
df[1:nrow(df),1] <- NA
df[1:nrow(df),2] <- NA
[1:nrow(df),]
в основном указывает R на заменить все значения в столбце на NA
и, таким образом, логическийNA
приводится к исходному типу столбца перед заменой других значений.
Кроме того, если вам нужно заменить много столбцов, а в data_frame много строк, я предлагаю сохранить строкуиндексирует и повторно использует их:
rowIdxs <- 1:nrow(df)
df[rowIdxs ,1] <- NA
df[rowIdxs ,2] <- NA
df[rowIdxs ,3] <- NA
...
Как умно предложено @ RonakShah , вы также можете использовать:
df[TRUE, 1] <- NA
df[TRUE, 2] <- NA
...
Как указано @ Cath оба метода по-прежнему работают при выборе более одного столбца, например:
df[TRUE, 1:3] <- NA
# or
df[1:nrow(df), 1:3] <- NA