내가 가진 데이터 구조는 다음과 같습니다.
structure(list(UDD_beta = c(1.17136554204268, 0.939587997289016
), UDD_pval = c(0, 0), UDD_R.sq = c(0.749044972637797, 0.516943886705951
), SSX_beta = c(1.05356804780772, 0.927948300464624), SSX_pval = c(0,
0), SSX_R.sq = c(0.60226298037862, 0.629111666509209), SPP_beta = c(0.675765151939885,
0.516425218613404), SPP_pval = c(0, 0), SPP_R.sq = c(0.479849538274406,
0.378266618442121), EEE_beta = c(0.690521022226874, 0.639380962824289
), EEE_pval = c(0, 0), EEE_R.sq = c(0.585610742768951, 0.676073352909597
)), .Names = c("UDD_beta", "UDD_pval", "UDD_R.sq", "SSX_beta",
"SSX_pval", "SSX_R.sq", "SPP_beta", "SPP_pval", "SPP_R.sq",
"EEE_beta", "EEE_pval", "EEE_R.sq"), row.names = c("DDK", "DDL"
), class = "data.frame")
R.sq
열 을 가져 오고 각 행에 대해 최대 값과 최대 값의 열 이름을 찾습니다. 그런 다음 해당 beta
. 예상 출력 :
Name Value
DDK UDD 1.17136554204268
DDL EEE 0.690521022226874
죄송합니다. 두 번째 예상 값은입니다 0.639380962824289
.
우리는 max.col
. 관심있는 열, 즉를 사용하여 'R.sq'가있는 열을 부분 집합 한 grep
다음을 사용하여 max
값 의 열 인덱스를 가져옵니다 max.col
. 이를 사용하여 열 이름과 특정 행에 해당하는 값을 가져옵니다 ( row/column
인덱싱).
i1 <- grep("R.sq", names(df1))
i2 <- max.col(df1[i1], "first")
i3 <- grep("beta", names(df1))
res <- data.frame(Names = sub("_.*", "", names(df1)[i1][i2]),
Value = df1[i3][cbind(1:nrow(df1), i2)])
row.names(res) <- row.names(df1)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다