Если в data.frame - PullRequest
       7

Если в data.frame

0 голосов
/ 02 апреля 2019

Я хотел бы выбрать значение между двумя столбцами в одной строке, следующие значения в других столбцах.

Моя функция будет выглядеть следующим образом: если значения внутри shapiro1, shapiro2 и F_test меньше 0,05, выберите значение в t_test, иначе выберите значение wilcox. Возможно ли вам создать такую ​​функцию и применить ее к столбцам большего размера?

structure(list(modalities = structure(1:3, .Label = c("BS1", 
"HW1", "PG"), class = "factor"), shapiro1 = c(0.0130672654432492, 
0.305460485386201, 0.148320635833262), shapiro2 = c(0.920315823302857, 
0.1354174735521, 0.148320635833262), F_test = c(0.20353475323665, 
0.00172897172228584, 1), t_test = c(2.88264982135322e-06, 5.75374264225996e-05, 
NaN), wilcox = c(0.00909069801592506, 0.00902991076269246, NaN
)), class = "data.frame", row.names = c(NA, -3L))

1 Ответ

1 голос
/ 02 апреля 2019

Вы можете выбрать столбцы, применить rowSums и проверить, является ли какое-либо значение в этой строке меньше 0,05, и выбрать значения t_test или wilcox соответственно.

cols <- c("shapiro1", "shapiro2", "F_test")
ifelse(rowSums(df[cols] < 0.05) > 0, df$t_test, df$wilcox)
#[1] 2.882650e-06 5.753743e-05          NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...