В последнее время я в основном работаю в SAS, но не желая терять то, что имею с R, я хотел бы повторить кое-что базовое, что я сделал. Вы простите меня, если мой код SAS не совершенен, я делаю это по памяти, поскольку у меня дома нет SAS.
В SAS у меня есть набор данных, который примерно такой же, как в следующем примере (. Эквивалентен NA в SAS)
A B
1 1
1 3
0 .
0 1
1 0
0 0
Если набор данных выше был work.foo, то я мог бы сделать что-то вроде следующего.
/* create work.bar from dataset work.foo */
data work.bar;
set work.foo;
/* generate a third variable and add it to work.bar */
if a = 0 and b ge 1 then c = 1;
if a = 0 and b = 0 then c = 2;
if a = 1 and b ge 1 then c = 3;
if a = 1 and b = 0 then c = 4;
run;
и я бы получил что-то вроде
A B C
1 1 3
1 3 3
0 . .
0 1 1
1 0 4
0 0 2
И тогда я мог бы выполнить сортировку по C, а затем выполнить различные операции, используя C, чтобы создать 4 подгруппы. Например, я мог бы получить средства каждой группы с
proc means noprint data =work.bar;
by c;
var a b;
output out = work.means mean(a b) = a b;
run;
и я получу данные о переменных по группам, называемым work.means
что-то вроде:
C A B
1 0 1
2 0 0
3 2 2
4 1 0
Думаю, я тоже могу получить. грести, но меня это не волнует.
Теперь в R. У меня есть тот же набор данных, который был прочитан правильно, но я понятия не имею, как добавить переменную в конец (например, CC) или как выполнить операцию в подгруппе (например, by cc команда в proc означает). Кроме того, я должен отметить, что мои переменные именуются не в каком-либо порядке, а в соответствии с тем, что они представляют.
Я полагаю, если кто-то может показать мне, как сделать выше, я могу обобщить это к тому, что мне нужно сделать.