2015-12-14 1 views
1

У меня есть кадр данных под названием «Data», который выглядит следующим образом:Замена кадров данных логические выражения

   Jobs  Agency  Location  Date RXH HS TMM Payed 
6  RWC Heineken Lightblue   EGC 2015-10-10 90 8.5 765 FALSE 
31  Playstation Lightblue Mirdiff CC 2015-11-13 90 7.0 630 FALSE 
26 I.D Heineken Lightblue Irish Village 2015-11-06 90 8.0 720 FALSE 
35 Bank of America  Allure  Raffles 2015-11-17 100 3.0 300 FALSE 
15 Netapp Gitex F1 Events House   DWTC 2015-10-20 100 8.0 800 TRUE 

Я хочу, чтобы изменить все элементы данных $ оплаченный где Data$Jobs == "RWC Heineken" к TRUE.

Я мог бы изменить его вручную, используя fix(Data), но мне потребовалось несколько минут, поскольку мне нужно изменить несколько из них.

Я ищу код, который сделает это автоматически.

+1

Не уверен в ожидаемом выходе, 'trimws (Data $ Jobs) ==" RWC Heineken "' – akrun

+2

'Data $ Payed [Data $ Jobs ==" RWC Heineken "] <- TRUE'? – jogo

+0

@jogo дал вам полный ответ. Я нашел этот пост, который довольно похож на http://stackoverflow.com/questions/11817371/replace-numbers-in-data-frame-column-in-r – leosz

ответ

3

Вам необходимо присвоить значение на основе логики. Вот работа через:

Ряды вы хотите изменить:

Data$Jobs == "RWC Heineken" 
# Incidentally this tells you how many meet this criterion 
sum(Data$Jobs == "RWC Heineken") 

Это возвращает элементы столбца, которые вы хотите изменить:

Data$Payed[Data$Jobs == "RWC Heineken"] 

Следующий шаг изменяет значение, где эта логика применяется:

Data$Payed[Data$Jobs == "RWC Heineken"] = "TRUE" 

Вы также можете:

Data[Data$Jobs == "RWC Heineken", "Payed"] = "TRUE" 
+0

Спасибо Майку !!! Точно то, что мне было нужно, отличное объяснение. Это также изменит мой .csv-файл? –

+0

Обратите внимание, что соглашение предназначено для использования '<-' для назначений. Это может быть (и было) обсуждено, но для начинающего должно знать, что '<-' является идиоматическим R. –

+0

Нет, это влияет только на то, что вы загрузили. Используйте 'write.csv' для вывода, хотя подумайте о том, как вы управляете данными, потому что это кажется инстинктивно неуклюжим. – MikeRSpencer