Столбец имеет разные значения, одно из которых содержит значение *. Я хочу заменить это U.

Данные выглядят примерно так: col f f g h * t *

Я

Я попробовал ниже варианты:

replace( df$col, "*", "U")
data$PROP_TYPE[df$col=='*'] <- 'U'

Оба не работают

r
1
Rudra 12 Апр 2019 в 16:18

2 ответа

Лучший ответ

replace необходимо знать, какие элементы заменить (x == "*"):

x <- c("*", "a", "*", "a", "*", "a", "*", "a", "B")
replace(x, x == "*", "U")
#[1] "U" "a" "U" "a" "U" "a" "U" "a" "B"

В data.frame

df <- data.frame(x = x, stringsAsFactors = F)
df[df$x == "*", "x"] <- "U"
0
Patrik_P 12 Апр 2019 в 13:40

Не уверен, как часто * отображается в вашем фрейме данных, но вы можете использовать gsub для замены всех его экземпляров.

Скажем, у вас есть такой столбец:

df <- c("asd*asd", "432*432", "*")
[1] "asd*asd" "432*432" "*" 

Если вы хотите заменить все * на U, вы можете запустить это

gsub("\\*", "U", df)
[1] "asdUasd" "432U432" "U"   

Поскольку * является специальным символом, вы должны экранировать его, используя \\, иначе он не даст вам того, что вы ищете.

0
Seb 12 Апр 2019 в 13:53