Ищите и заменяйте определенные значения в R - PullRequest
0 голосов
/ 27 октября 2019

Я знаю, что об этом уже тысячу раз спрашивали, но ответы у меня не работают.

У меня большой набор данных и мне нужно R для автоматического поиска и замены определенных значений в определенных столбцах для меня.

Я пробовал это:

df$column <- replace (df$column, df$column, old number==new number)

для меня это будетвыглядит следующим образом:

df$qual_a_a_s1m1a <- replace(df$qual_a_a_s1m1a, df$qual_a_a_s1m1a, 2==3)

Если я получу это, я могу построить это для всех столбцов и всех значений.

Можете ли вы объяснить, почему это не работает? Спасибо и хорошего воскресенья:)

РЕДАКТИРОВАТЬ: Это один из результатов, которые я получаю:

replace(df$qual_a_a_s1m1a, df$qual_a_a_s1m1a, 6==1)

  [1]  0  0 NA  6 NA  0 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA  2 NA
 [32] NA NA NA NA  1 NA NA NA NA NA NA NA NA  6 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [63] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [94] NA NA NA NA NA NA NA NA  6 NA NA NA NA NA NA

Вместо того, чтобы заменить шестерки на те, которые ставятся два нуля в первомдве позиции.

Ответы [ 2 ]

0 голосов
/ 27 октября 2019

Синтаксис для замены в неправильном формате. См. ?replace Ваш x правильный, но список должен быть списком номеров строк, которые вы хотите заменить. Тогда vaules будет списком значений, в которые вы хотите преобразовать строки в списке.

Этот код будет работать намного лучше, чем использовать replace ():

# create fake data
df <- data.frame(qual_a_a_s1m1a=rep(1:3,times=3))
df

# let's change all the 2s to 3s
df$qual_a_a_s1m1a[df$qual_a_a_s1m1a==2] <- 3

df # all the 2s are now 3s
0 голосов
/ 27 октября 2019

Привет, я думаю, что у вас есть синтаксис в неправильном формате .... это не должно быть df$qual_a_a_s1m1a <- replace(df$qual_a_a_s1m1a, df$qual_a_a_s1m1a=3, 2)

также, возможно, вы могли бы использовать ifelse? не уверен, быстрее это или нет, но это то, чем я часто пользуюсь. Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...