簡體   English   中英

在 R 中,如何根據其他列的列標題的值創建新列

[英]In R, how to create a new column from the column headings of other columns based on their values

我有一個 dataframe 如下:

Type    Prob_A prob_B  prob_C
Vinyl    .57    .43       0
Wood     .2     .4       .4
Ceramic  .12    .80      .08

我需要創建一個名為 Status 的新列。 檢查概率並獲取最大值的標題並將其稱為 A、B 或 C。 在我的真實數據資產中,我需要比較 10 列。

我們可以使用max.col來獲取第一個max的列索引和列名的 select 和 substring

df1$Status <- substring(names(df1)[-1], 
          nchar(names(df1)[-1]))[max.col(df1[-1], 'first')]
df1$Status
#[1] "A" "B" "B"

數據

df1 <- structure(list(Type = c("Vinyl", "Wood", "Ceramic"), Prob_A = c(0.57, 
0.2, 0.12), prob_B = c(0.43, 0.4, 0.8), prob_C = c(0, 0.4, 0.08
)), class = "data.frame", row.names = c(NA, -3L))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM