у меня есть кадр R данные:Создать новый столбец в data.frame с использованием условий каждой строки
> tab1
pat t conc
1 P1 0 788
2 P1 5 720
3 P1 10 655
4 P2 0 644
5 P2 5 589
6 P2 10 544
Я пытаюсь создать новый столбец для conc
как процент от conc
при t
= 0 для каждый пациент. Как и многие другие вещи, я попытался:
tab1$conct0 <- tab1$conc/tab1$conc[tab1$t == 0 & tab1$pat == tab1$pat]
Но я ясно мили с правильным кодом, что означает «конц где Т == 0 и погладить == погладить для этой конкретной строки»
Я уверен, что могу использовать цикл for или что-то в этом роде, но надеялся, что есть что-то проще?
Благодаря
Я думаю, что это неверно. Возьмите подмножество 'tab1' (например:' tab1 <-subset (tab1, t <10) 'и проверьте результаты. Проблема заключается в' tab1 $ pat == unique (tab1 $ pat) ',' == 'оператор репликации более короткий вектор, поэтому (например, наборы данных) вы сравниваете «1,1,1,2,2,2' с« 1,2,1,2,1,2 », поэтому он случайно работает. Но если у вас есть другой вектор, – Marek
@Marek: Спасибо, что заметили, что Marek, я исправил код, теперь он должен работать. – nico
Эта '% in%' часть всегда 'TRUE'. Я думаю' startConc <-tab1 [tab1 $ t == 0,] '(или' subset (tab1, t == 0) '). – Marek