Работать одновременно с несколькими столбцами

Как программно работать с несколькими столбцами (или строками) одновременно? Рассмотрим пример:

df2 <- data.frame(a = 1:10, b = 5:14, c = 10:1, d = 14:5)

Я хотел бы создать два новых столбца, которые будут содержать соотношение a / b и c / d. Для простоты предположим, что пространственные отношения между всеми столбцами согласованы. Имея всего два столбца, можно сделать что-то вроде этого:

df2$ab <- with(df2, a/b)
df2$cd <- with(df2, c/d)

или

df2 <- transform(df2, ab = a/b, cd = c/d)

Чтобы создать конечный продукт, например:

    a  b  c  d        ab        cd
1   1  5 10 14 0.2000000 0.7142857
2   2  6  9 13 0.3333333 0.6923077
3   3  7  8 12 0.4285714 0.6666667
4   4  8  7 11 0.5000000 0.6363636
5   5  9  6 10 0.5555556 0.6000000
6   6 10  5  9 0.6000000 0.5555556
7   7 11  4  8 0.6363636 0.5000000
8   8 12  3  7 0.6666667 0.4285714
9   9 13  2  6 0.6923077 0.3333333
10 10 14  1  5 0.7142857 0.2000000

Но что, если нужно перебрать сотни столбцов? Обычно я использую Excel или SQL для объединения кода и добавления его в свой сценарий .R, но, похоже, должен быть способ решить эту проблему с помощью R.

Полное раскрытие: этот вопрос связан с вопросом о перекрестная проверка , где я собрал решение, которое не может быть оптимальным.

5
задан Community 13 April 2017 в 12:44
поделиться