В кадре данных с длинным форматом, например diamonds
:
carat cut color clarity depth table price x y z
<dbl> <ord> <ord> <ord> <dbl> <dbl> <int> <dbl> <dbl> <dbl>
1 0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43
2 0.21 Premium E SI1 59.8 61 326 3.89 3.84 2.31
3 0.23 Good E VS1 56.9 65 327 4.05 4.07 2.31
4 0.290 Premium I VS2 62.4 58 334 4.2 4.23 2.63
5 0.31 Good J SI2 63.3 58 335 4.34 4.35 2.75
6 0.24 Very Good J VVS2 62.8 57 336 3.94 3.96 2.48
Как я могу, например, умножить каждое значение в столбце price
на константу, где каждая строка в * Столбец 1006 * удовлетворяет условию clarity='SI2'
?
Я знаю, как использовать filter
для фильтрации фрейма данных и выполнять любую операцию, которая мне нравится:
df1 <- diamonds
filter(df['price'], df['clarity']=='VS1')*1000
# output:
price
<dbl>
327000
338000
340000
353000
355000
357000
402000
402000
402000
402000
Но как мне заменить старые значения с пересчитанными значениями в одном go?
Я был уверен , это будет работать нормально:
df['price'][df$clarity == 'VS1'] <- filter(df['price'], df['clarity']=='VS1')*1000
Но я получаю сообщение об ошибке: Error: Must assign to columns with a valid subscript vector
Я давно не баловался с R
, поэтому боюсь, что могу упустить что-то очень очевидное. Спасибо за любые предложения!