[英]ifelse add a calculated field in R dataframe
大家好,我正在嘗試同時使用多個條件將計算字段添加到 R 中的數據框中。
我有以下名為 df 的數據框
ID A AA AAA AAAA AAAAA
1 1 a no 57 10 100.0%
2 2 b no 32 7 70.0%
3 3 c yes 30 7 70.0%
4 4 d no 52 7 70.0%
我想添加一個名為 Z 的新字段,其條件如下,如果為真,則基本上添加 25%
ifelse(df$AA=="yes",0.25,0) + ifelse(df$AAA<30,0.25,0) + ifelse(df$AAAA>4,0.25,0)
所以我添加了以下代碼
df$Z<-as.data.frame(ifelse(df$AA=="yes",0.25,0)+ifelse(df$AAA<30,0.25,0)+ifelse(df$AAAA>4,0.25,0))
但我收到以下錯誤
Error in `$<-.data.frame`(`*tmp*`, Z, value = list(`ifelse(df$AA=="yes",0.25,0)+ifelse(df$AAA<30,0.25,0)+ifelse(df$AAAA>4,0.25,0)` = numeric(0))) :
replacement has 0 rows, data has 200
我想我正在嘗試將 excel 公式轉換為 R
=IF(C2="yes";25%;0)+IF(D2<30;25%;0)+IF(E2>4;25%;0)
此致
在最后一列中,如果您有'%'
符號,則在進行比較之前將其刪除。
df$AAAAA <- as.numeric(sub('%', '', df$AAAAA))
df$Z <- with(df, ifelse(AA=="yes",0.25,0) + ifelse(AAA<30,0.25,0) +
ifelse(AAAA>4,0.25,0))
您也可以在沒有ifelse
情況下執行此操作
df$Z <- with(df, (AA == 'yes') * 0.25 + (AAA < 30) * 0.25 + (AAAA > 4) * 0.25)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.