извлечь значения после первого символа в столбце фрейма данных - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть следующий фрейм данных

df <- data.frame(V1 = c(1, 2), V2 = c(10, 20), V3=c("9,1", "13,3,4"))

> df
  V1 V2     V3
1  1 10    9,1
2  2 20 13,3,4

Теперь я хочу создать новый столбец 'V4', который принимает значение после первого ',' из V3,делит его на значение в V2 и умножает на 100

В моем примере это будет:

(1 делится на 10) * 100 = 10 (3 делится на 20) * 100 =15

Таким образом, результат будет выглядеть следующим образом

df_new 

  V1 V2     V3    V4
1  1 10    9,1    10
2  2 20 13,3,4    15  

Как этого достичь?

1 Ответ

1 голос
/ 19 сентября 2019

Мы можем использовать регулярное выражение, чтобы извлечь число после первой запятой, разделить его на V2 и умножить на 100.

transform(df, V4 = as.integer(sub("\\d+,(\\d+).*", "\\1", V3))/V2 * 100)
#  V1 V2     V3 V4
#1  1 10    9,1 10
#2  2 20 13,3,4 15
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...