在R中,如何根据其他列的值从其他列的标题创建新列

时间:2019-11-04 17:33:43

标签: r

我有一个如下数据框:

function modify_term_link_url( $links ) {
    global $post;
    if( !$post ) return $links;
    $terms = get_the_terms( $post->ID, 'post_tag' );
    if ( is_wp_error( $terms ) ) {
        return $terms;
    }
    if ( empty( $terms ) ) {
        return false;
    }
    $links = array();
    foreach ( $terms as $term ) {
        if( $term->count < 10 ){
            $link = '';
        }else{
            $link = get_term_link( $term, 'post_tag' );
            if ( is_wp_error( $link ) ) {
                return $link;
            }
        }
        $links[] = '<a href="' . esc_url( $link ) . '" rel="tag">' . $term->name . '</a>';
    }
    return $links;
}
add_filter( 'term_links-post_tag', 'modify_term_link_url' );

我需要创建一个名为Status的新列。检查概率并获取最大值的标题,并将其称为A,B或C。在我的实际数据资产中,我有10列需要比较。

1 个答案:

答案 0 :(得分:0)

我们可以使用max.col获取前max个值的列索引并选择列名称的子字符串

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))