0
Это моя проблема У меня есть dataframe как этотсоздать столбец в кадр данных R добавления значения в нескольких столбцах выше значения в другом столбце
df=data.frame(v1=c(24,15, 0, 7,36,10), c1=c(22,15,0,0,28,11), v2=c(0,10,0,19,0,0), c2=c(0,7,0,22,0,0), v3=c(54,22,28,55,62,38), c3=c(44,23,22,66,71,44), cut=c(20,35,40,15,40,30))
Это выглядит как этот
v1 c1 v2 c2 v3 c3 cut
1 24 22 0 0 54 44 20
2 15 15 10 7 22 23 35
3 0 0 0 0 28 22 40
4 7 0 19 22 55 66 15
5 36 28 0 0 62 71 40
6 10 11 0 0 38 44 30
Мне нужно создать новый столбец с добавлением значений столбцов v1, v2, v3 (в реальном случае их больше), но только тогда, когда они превышают значение в столбце «cut»
S o, в этом случае столбец «сумма» будет:
sum
78
0
0
64
62
38
Надеюсь, это не очевидно.
Это плохая привычка использовать 'apply' на кадрах данных, ИМО. –
@HongOoi добавил подход mapply. Каковы ваши аргументы в пользу того, что вы не любите «применять» в кадрах данных? –
Потому что 'apply' превращает свой аргумент в матрицу. Если ваш df содержит символьные или факторные переменные, результатом будет матрица символов и, вероятно, нарушит любую функцию, которую вы пытаетесь применить (хотя и не в этом случае). –