2015-05-18 2 views
1

У меня есть кадр данных с 200 столбцами. Я хотел бы найти максимальное значение nchar в столбце 6 для последнего столбца для каждой строки.найти максимальный nchar для каждой строки в кадре данных в r

CHROM POS REF RANK HETERO_COUNT sample1 sample2 sample3 sample4 sample5 
Chr20 84 C Rank4 12 C/C C/C C/A C/C C/C 
Chr20 102 TAA Rank4 8 TAA/TAA TAA/TAA TAA/TA TAA/TAA TA/TA 
Chr20 104 ACCCCC Rank3 21 ACCCCC/ACCCCCC ACCCCCC/ACCCCCC ACCCCC/ACCCCC ACCCCC/ACCCCC ACCCCC/ACCCCC 
Chr20 109 C Rank4 67 C/T C/T -/- C/T C/C 
Chr20 118 A Rank4 16 A/A C/C A/C A/A A/A 

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

CHROM POS REF RANK HETERO_COUNT sample1 sample2 sample3 sample4 sample5 max 
Chr20 84 C Rank4 12 C/C C/C C/A C/C C/C 3 
Chr20 102 TAA Rank4 8 TAA/TAA TAA/TAA TAA/TA TAA/TAA TA/TA 7 
Chr20 104 ACCCCC Rank3 21 ACCCCC/ACCCCCC ACCCCCC/ACCCCCC ACCCCC/ACCCCC ACCCCC/ACCCCC ACCCCC/ACCCCC 15 
Chr20 109 C Rank4 67 C/T C/T -/- C/T C/C 3 
Chr20 118 A Rank4 16 A/A C/C A/C A/A A/A 3 

Благодарим за помощь.

ответ

5

Попробуйте

df1$max <- apply(df1[6:ncol(df1)], 1, function(x) max(nchar(x))) 

или

do.call(pmax, as.data.frame(nchar(as.matrix(df1[6:ncol(df1)])))) 

или Ответил @BrodieG, max.col могут быть также использованы

chars <- nchar(as.matrix(df1[-(1:5)])) 
chars[cbind(1:nrow(chars), max.col(chars))] 
+1

Он работает. Спасибо – user3354212

+1

или '{chars <- nchar (as.matrix (df [- (1: 5)])); chars [cbind (1: nrow (chars), max.col (chars))]} '(+1) – BrodieG

+0

@BrodieG Спасибо за ввод – akrun

Смежные вопросы