如何在dplyr::mutate中用更易读方式调用数据框最后一列?
更易读的最后一列引用方法
当然有,这里有几种比.[[ncol(.)]]更直观易懂的写法:
使用dplyr的
last_col()函数(推荐):这是dplyr专门提供的选取最后一列的函数,语义清晰,一眼就能明白是取最后一列,代码最简洁:df <- matrix(1:4, ncol = 2) %>% as.data.frame() df %>% mutate(V3 = last_col() * 2)通过列名选取(结合
tail()):如果需要明确用到列名,也可以用tail(names(.), 1)获取最后一列的名称,再引用:df %>% mutate(V3 = .[[tail(names(.), 1)]] * 2) # 或者用select的写法 df %>% mutate(V3 = select(., tail(names(.), 1)) * 2)base R风格的列索引写法:和原方法逻辑一致,但用逗号索引代替双括号,可读性略有提升:
df %>% mutate(V3 = .[, ncol(.)] * 2)
其中last_col()是最优解,完全不需要计算列数,语义直接对应需求,代码最易读。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

