gpt4 book ai didi

R 的行百分比

转载 作者:行者123 更新时间:2023-12-04 00:12:11 29 4
gpt4 key购买 nike

我有一个看起来像这样的数据框,但是全年

 date       v1  v2  v3  v4  v5  v6  v7  v8  Fraction   Percent
01-02-2013 0 0 1 1 1 1 1 0 0.625
01-03-2013 0 0 1 1 0 0 0 0 0.25
01-04-2013 0 0 0 0 0 1 0 0 0.125
01-05-2013 0 0 0 0 0 0 1 0 0.125
01-06-2013 0 0 0 0 0 0 0 0 0
....................................................
....................................................

我的兴趣是计算 Fraction 列的百分比。我尝试使用 prop.table 但它没有用。我也试过了

df$Percent <- df$Fraction * 100

它给了我以下错误

Error in df$Fraction[i] * 100 : non-numeric argument to binary operator

我试过循环执行此操作,这是我使用的代码

df$Fraction <- 'NA'
df$Percent <- 'NA'
for (i in 1:nrow(df)) {
df$Fraction[i] <- round(sum(df[i, 2:9], na.rm=F)/8, 2)
# I have used only one of the following at one time
df$Percent[i] <- prop.table(as.array(df$Fraction[i]), margin= 2) *100
df$Percent[i] <- df$Fraction[i] * 100
}

最佳答案

我们可以使用 rowSums 而不是使用 for 循环来完成此操作>

df$Fraction <- rowSums(df[2:9], na.rm=TRUE)/8
df$Percent <- 100*df$Fraction

或者如@ColonelBeauvel 所述,rowMeans 将更加紧凑和合适。

df$Fraction <- rowMeans(df[2:9], na.rm=TRUE)

关于R 的行百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32984437/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com