Назначьте значение для столбца из другого столбца на основе условия -- r пол Связанный проблема

Assign value to a column from another column based on condition


0
vote

проблема

русский

Скажите, что у меня есть такой список:

 <код> > desired <- c("10001", "10004")   

и образец кадра данных, как это:

 <код> > desired_sample_df <- data.frame(geo = rep("other", 30), zip = c(rep(10001:10010, 2), 10011:10020), cbsa = c(rep("NY", 20), rep("CA", 10))) > desired_sample_df      geo   zip cbsa 1  other 10001   NY 2  other 10002   NY 3  other 10003   NY 4  other 10004   NY 5  other 10005   NY 6  other 10006   NY 7  other 10007   NY 8  other 10008   NY 9  other 10009   NY 10 other 10010   NY 11 other 10001   NY 12 other 10002   NY 13 other 10003   NY 14 other 10004   NY 15 other 10005   NY 16 other 10006   NY 17 other 10007   NY 18 other 10008   NY 19 other 10009   NY 20 other 10010   NY 21 other 10011   CA 22 other 10012   CA 23 other 10013   CA 24 other 10014   CA 25 other 10015   CA 26 other 10016   CA 27 other 10017   CA 28 other 10018   CA 29 other 10019   CA 30 other 10020   CA   

Я хотел бы перезаписать <код> geo столбца со значением из zip, только если значение zip находится в <код> desired списка, сохраненного в начале.


Вот что я пробовал:

 <код> > desired_sample_df$geo[desired_sample_df$zip %in% desired] <- desired_sample_df$zip[which(desired_sample_df$zip %in% desired)] Warning message: In `[<-.factor`(`*tmp*`, desired_sample_df$zip %in% desired, value = c(NA,  :   invalid factor level, NA generated   > desired_sample_df$geo[desired_sample_df$zip %in% desired] <- desired_sample_df$zip Warning messages: 1: In `[<-.factor`(`*tmp*`, desired_sample_df$zip %in% desired, value = c(NA,  :   invalid factor level, NA generated 2: In `[<-.factor`(`*tmp*`, desired_sample_df$zip %in% desired, value = c(NA,  :   number of items to replace is not a multiple of replacement length   
Английский оригинал

Say that I have a list like this:

> desired <- c("10001", "10004") 

And a sample data frame like this:

> desired_sample_df <- data.frame(geo = rep("other", 30), zip = c(rep(10001:10010, 2), 10011:10020), cbsa = c(rep("NY", 20), rep("CA", 10))) > desired_sample_df      geo   zip cbsa 1  other 10001   NY 2  other 10002   NY 3  other 10003   NY 4  other 10004   NY 5  other 10005   NY 6  other 10006   NY 7  other 10007   NY 8  other 10008   NY 9  other 10009   NY 10 other 10010   NY 11 other 10001   NY 12 other 10002   NY 13 other 10003   NY 14 other 10004   NY 15 other 10005   NY 16 other 10006   NY 17 other 10007   NY 18 other 10008   NY 19 other 10009   NY 20 other 10010   NY 21 other 10011   CA 22 other 10012   CA 23 other 10013   CA 24 other 10014   CA 25 other 10015   CA 26 other 10016   CA 27 other 10017   CA 28 other 10018   CA 29 other 10019   CA 30 other 10020   CA 

I would like to overwrite the geo column with a value from zip only if the value of zip is in the desired list saved at the start.


Here is what I've tried:

> desired_sample_df$geo[desired_sample_df$zip %in% desired] <- desired_sample_df$zip[which(desired_sample_df$zip %in% desired)] Warning message: In `[<-.factor`(`*tmp*`, desired_sample_df$zip %in% desired, value = c(NA,  :   invalid factor level, NA generated   > desired_sample_df$geo[desired_sample_df$zip %in% desired] <- desired_sample_df$zip Warning messages: 1: In `[<-.factor`(`*tmp*`, desired_sample_df$zip %in% desired, value = c(NA,  :   invalid factor level, NA generated 2: In `[<-.factor`(`*tmp*`, desired_sample_df$zip %in% desired, value = c(NA,  :   number of items to replace is not a multiple of replacement length 
</div
  

Список ответов

1
 
vote
vote
Лучший ответ
 

Вот так?

 <код> df$geo <- ifelse(df$zip %in% desired,df$zip,df$geo)   

Откуда я звоню <код> desired_sample_df , просто <код> df .

 

Like this?

df$geo <- ifelse(df$zip %in% desired,df$zip,df$geo) 

where I'm calling your desired_sample_df, just df.

</div
 
 
2
 
vote

Одной из проблем - это то, что строки в DataFrames автоматически становятся факторами. Попробуйте это:

 <код> desired <- c("10001", "10004") df <- data.frame(geo = rep("other", 30), zip = c(rep(10001:10010, 2), 10011:10020), cbsa = c(rep("NY", 20), rep("CA", 10)), stringsAsFactors=FALSE)  idx <- df$zip %in% desired   

Теперь вы можете изменить элементы, которые вы хотите с помощью

 <код> df[idx, ]$geo <- df[idx, ]$zip   
 

One of the problems is that strings in dataframes automatically become factors. Try this:

desired <- c("10001", "10004") df <- data.frame(geo = rep("other", 30), zip = c(rep(10001:10010, 2), 10011:10020), cbsa = c(rep("NY", 20), rep("CA", 10)), stringsAsFactors=FALSE)  idx <- df$zip %in% desired 

Now you can alter the elements you want by

df[idx, ]$geo <- df[idx, ]$zip 
</div
 
 
     
     

Связанный проблема

2  Вопросы с установкой пакета Caret of R в Archlinux  ( Issues with installing caret package of r in archlinux ) 
Я пытаюсь установить пакет <код> SCRIPT="""UPDATE IND_AFRO.DRIVER SET Emp_Id = 1000, update_user_id = 'RIBST-4059' WHERE Emp_Id IN (SELECT Emp_Id ...

-2  Лучшая практика кодирования для R Script работает в производстве [Закрыто]  ( Best practise coding for r script running in production ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыт . Этот вопрос должен быть больше Фокусированный . В настоя...

0  Интеллектуальный способ создать сводную таблицу без цикла в R  ( Intelligent way to create summary table without for loop in r ) 
Добрый день, У меня есть кадр данных следующим образом, с временным меттом в первом столбце, как POSIXLT, а значение данных во втором: <код> properties2 ...

1  Как избежать проблемы Log-Quartelive Log-Inf в MLE Function из пакета Stat4?  ( How to avoid the inf log likelihood problem in mle function from stat4 package ) 
Я хочу максимизировать функцию вероятности логики, чтобы соответствовать некоторым данным, но функция MLE останавливается с этой ошибкой, когда логическая вер...

1  Замените отсутствующие значения в ячейке со значением из ячейки выше (N-1) с помощью петли  ( Replace missing values in a cell with a value from the cell above n 1 using a ) 
У меня есть файл данных с тысячами строк, у которых есть пробелы, которые я хочу заполнить значением. Мне нужно заменить пустые ячейки со значениями из них вы...

1  Задержка в заявке не работает в R  ( Lag in apply statement doesnt work in r ) 
Я пытаюсь «применить» функцию, которая делает «отставать» на объектах зоопарка в R. Функция работает правильно, если я передаю один вектор зоопарка - это пр...

2  Сравнение нескольких классификаторов: Nemenyi + Holm Test в R  ( Comparing multiple classifiers nemenyi holm test in r ) 
Я пытаюсь воспроизвести результаты из (1) в виде новичков до R. Таблица 6 - это AUCS из 4 классификатора на 14 наборах данных: <код> auc <- matrix(c( 0.76...

2  Package Desolve Package Can Parames включают в себя матрицу?  ( Desolve package can parameters include a matrix ) 
Я пытаюсь кодировать модель Seir, которая является возрастной, стратифицированной; То есть в моих дифференциальных уравнениях у меня есть параметр для массово...

0  Как сделать бесконечно рекурсивный список в R: путать [и [[  ( How to make an infinitely recursive list in r confuse and ) 
Редактировать: Этот вопрос глупо, я путающую [и [((спасибо @josilber), но я не могу удалить его. Как можно сделать бесконечно рекурсивный список, l == l [1]...

2  Нахождение дубликатовных значений в R  ( Finding duplicate values in r ) 
Так, в строке, содержащей несколько 1 ', Теперь возможно, что номер <код> cmake .. 2 появляется на нескольких позициях, скажем, на нескольких позициях...

4  Как получить обратный CDF (ядро) в R?  ( How to get inverse cdf kernel in r ) 
Есть ли функция в R, которая рассчитает обратное ядро ​​(я рассматриваю нормальный) CDF для определенного альфа (0,1). Я нашел курс, но я не уверен, как это р...

5  Расчет дней в месяц между интервалом двух дат  ( Calculating days per month between interval of two dates ) 
У меня есть набор событий, которые каждый из которых имеет начало и окончание, но они проходят по объему ряда месяцев. Я хотел бы создать таблицу, которая пок...

0  Hexfile Package R  ( Hexfile package r ) 
Я пытаюсь импортировать файл eviews (.wf1) в <код> R с hexView пакет. код: <код> file = readEViews(hexViewFile("eviewsr.wf1"),as.data.frame = TRUE) ...

99  Как выбрать строку с максимальным значением в каждой группе  ( How to select the row with the maximum value in each group ) 
В наборе данных с несколькими наблюдениями для каждого предмета я хочу взять подмножество только с максимальным значением данных для каждой записи. Например, ...

0  Скрепление финансовых таблиц с веб-страницы с R, Rvest, RCURL  ( Scraping financial tables from web page with r rvest rcurl ) 
Я пробую разбор финансовых таблиц с веб-страницы. Я продолжал. Но я не могу устраивать список, или данные. Карамент <код> library(rvest) link <- "http://www...

Связанный проблема

2  Вопросы с установкой пакета Caret of R в Archlinux 
-2  Лучшая практика кодирования для R Script работает в производстве [Закрыто] 
0  Интеллектуальный способ создать сводную таблицу без цикла в R 
1  Как избежать проблемы Log-Quartelive Log-Inf в MLE Function из пакета Stat4? 
1  Замените отсутствующие значения в ячейке со значением из ячейки выше (N-1) с помощью петли 
1  Задержка в заявке не работает в R 
2  Сравнение нескольких классификаторов: Nemenyi + Holm Test в R 
2  Package Desolve Package Can Parames включают в себя матрицу? 
0  Как сделать бесконечно рекурсивный список в R: путать [и [[ 
2  Нахождение дубликатовных значений в R 
4  Как получить обратный CDF (ядро) в R? 
5  Расчет дней в месяц между интервалом двух дат 
0  Hexfile Package R 
99  Как выбрать строку с максимальным значением в каждой группе 
0  Скрепление финансовых таблиц с веб-страницы с R, Rvest, RCURL 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.