У меня есть dataframe, который выглядит примерно так, но в течение всего годастрочной процент с R
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
....................................................
....................................................
Мой интерес вычислить процент колонки фракции. Я попытался использовать 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
}
Проверьте класс фракции. Он был бы нечисловым. Вы преобразовали столбец из числового в нечисловой с помощью цитированного NA. Просто сделайте 'NA' вместо символа NA. – akrun
'df $ Fraction <- as.numeric (df $ Fraction) * 100' – Mateusz1981
класс' fraction' является 'character' –