如何在数据帧中创建一行,该行是R中其他行的总和?
我正在处理一个从csv文件中提取的数据帧,并尝试生成一行,该行是许多其他行的总和 我尝试过使用colSums、numcolwise和许多其他函数,但我总是遇到各种各样的错误。当使用colSums时,我得到一个错误,即我不能使用colSums函数,因为我的数据帧不是数字 所以如何在数据帧中创建一行,该行是R中其他行的总和?,r,dataframe,rows,plyr,R,Dataframe,Rows,Plyr,我正在处理一个从csv文件中提取的数据帧,并尝试生成一行,该行是许多其他行的总和 我尝试过使用colSums、numcolwise和许多其他函数,但我总是遇到各种各样的错误。当使用colSums时,我得到一个错误,即我不能使用colSums函数,因为我的数据帧不是数字 所以 如何将数据框中的所有数值读取为数字?及 如何生成一行,将所有适用的行相加 您可以使用is.numeric来标识列数值列,并过滤掉非数值变量/列。请参见下面的示例: df <- data.frame( a = let
您可以使用
is.numeric
来标识列数值列,并过滤掉非数值变量/列。请参见下面的示例:
df <- data.frame(
a = letters[1:10],
b = 1:10,
c = (1:10) / 100,
d = (1:10) / 50
)
str(df)
# 'data.frame': 10 obs. of 3 variables:
# $ a: Factor w/ 10 levels "a","b","c","d",..: 1 2 3 4 5 6 7 8 9 10
# $ b: int 1 2 3 4 5 6 7 8 9 10
# $ c: num 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
# $ d: num 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2
df_nums <- df[, sapply(df, is.numeric)]
str(df_nums)
# 'data.frame': 10 obs. of 2 variables:
# $ b: int 1 2 3 4 5 6 7 8 9 10
# $ c: num 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
# $ d: num 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2
rowSums(df_nums)
# [1] 1.01 2.02 3.03 4.04 5.05 6.06 7.07 8.08 9.09 10.10
df请使用dput(head(dataset,20))
的输出编辑问题,其中dataset
是您的数据框的名称。如果您的数据不是数字,那么期望对其进行汇总是不合理的。您可以通过键入sapply(df,class)
(其中df被替换为数据帧的名称)来查看哪些列导致了您的问题。我的回答可能会对您有所帮助:您可以使用rowSums
而不是rowMeans