R 如何生成只对数值列求和的列?

R 如何生成只对数值列求和的列?,r,R,我有一个包含很多列的数据框架 LABEL COL1 COL2 COL3 Meat 10 20 30 Veggies 20 30 40 如何使名为SUMCOL的列加起来COL1、COL2、COL3,以及我添加的任何其他数字列 仅包含上述列的SUMCOL示例: SUMCOL 60 90 您可以使用此函数,它利用了select\u if和作用域参数为数值 myfun <- function(df) { require(

我有一个包含很多列的数据框架

LABEL    COL1  COL2  COL3
Meat     10    20    30
Veggies  20    30    40
如何使名为
SUMCOL
的列加起来
COL1
COL2
COL3
,以及我添加的任何其他数字列

仅包含上述列的
SUMCOL
示例:

SUMCOL
60
90

您可以使用此函数,它利用了
select\u if
和作用域参数
为数值

myfun <- function(df) {
               require(dplyr)
               y <- select_if(df, is_numeric)
               rowSums(y, na.rm=T)
         }

我最终使用了以下代码:


df$SUMCOL
dat$SUMCOL
df$SUMCOL我最终使用了
dat$SUMCOL@Username,也许你想把它作为解决方案发布并接受答案(注意它来自
lmo
)。或者如果
lmo
可以作为一个更好的答案发布。我正在等待@Imo发布,但我可以。
如果
不是基本的R函数,请选择\u。。。
也不是数字的
。如果您正在构建一个需要软件包的函数,那么在函数中包含库调用会更方便,可能是使用
require
require
library
之间有什么区别吗?@ChiPak是的,请浏览已接受的答案。同时查看其他程序包。
require
将正常失败,如果找不到程序包,则打印警告,而
library
将抛出错误。请尝试使用
library(blah)
,然后使用
require(blah)
作为示例。从
?require
require是为在其他功能中使用而设计的
df$SUMCOL <- myfun(df)
    LABEL COL1 COL2 COL3 SUMCOL
1    Meat   10   20   30     60
2 Veggies   20   30   40     90