R - 数据帧列的求和更改数据类型

时间:2015-09-05 14:58:40

标签: r types dataframe

我有一个15列的数据框,其中第一列是整数,其他是数字。我必须生成除最后一列之外的所有列的总和的单行摘要。我需要生成最后一列的平均值。所以,我正在做如下的事情:

summary <- c(sum(df$col1), ... mean(df$col15))

然后summary出现的值最多为两位小数,即使对于整数列(第一列)也是如此。我一直在尝试使用round函数来解决这个问题。我可以理解,当添加不同类型时,例如, 1 + 1.0。但是,在这种情况下,总和不应该保持数据类型吗?

请让我知道我错过了什么?

2 个答案:

答案 0 :(得分:1)

如果您正在寻找单行摘要:

public class main {
    private static int retryCounter = 1;
    private static int MAX_RETRIES = 3;

    public static void main(String[] args) {

        int retry = 1;

        while (retry <= MAX_RETRIES) {
            try {

                //method1
                //stuff code
                //more code
                //method2


                int i=0;
                while (i < 11) {

                    try {

                         System.out.println(i);
                          i++;

                    } catch (Exception e) {

                        e.printStackTrace();

                        i++;

                        if (i == MAX_RETRIES) {
                            System.out.println("Program retried" + retry);
                            System.out.println("Program Terminated");

                        }

                    }
                }


                retry++;
            } catch (Exception e) {

                e.printStackTrace();

                retry++;

                if (retry == MAX_RETRIES) {
                    System.out.println("Program retried" + retry);
                    System.out.println("Program Terminated");

                }

            }

        }

        System.out.println("-----Finish Process-----");

    }
}

输出是一个保留每个向量类的数据框。如果您希望将输出添加到原始数据框,可以将lst <- c(lapply(df[-ncol(df)], function(x) sum(x)), mean=mean(df[,ncol(df)])) as.data.frame(lst) # int num1 mean #1 10 6 2.5 替换为:

as.data.frame(lst)

如果您要获取所有整数列的总和以及数字列的平均值,请使用@ Frank的答案。

数据

names(lst) <- names(df)
rbind(df, lst)

答案 1 :(得分:0)

也许是对此的改编?

apply(iris[,1:4], 2, sum) / c(rep(1,3), nrow(iris))