如何根据R中的数值条件添加具有值的新列?

如何根据R中的数值条件添加具有值的新列?,r,subset,cbind,R,Subset,Cbind,我有一个数据框,它有一个列,名为concentration with numeric value Concentration 700657 850789 900123 1011234 750001 我想添加一个新的列CDrange,其值为700k+、800k+、900k+、1000k+。新列中的值将根据浓度值分配,例如,如果值为700657,计算值应为700k+,如果值为850789,则值为800k+,依此类推。如何在不使用if-else循环的情况下编写函数。新列应该如下所示

我有一个数据框,它有一个列,名为concentration with numeric value

Concentration
700657  
850789  
900123  
1011234  
750001
我想添加一个新的列CDrange,其值为700k+、800k+、900k+、1000k+。新列中的值将根据浓度值分配,例如,如果值为700657,计算值应为700k+,如果值为850789,则值为800k+,依此类推。如何在不使用if-else循环的情况下编写函数。新列应该如下所示

Concentration       CDrange          
700657              700k+ 
850789              800k+ 
900123              900k+ 
1011234             1000k+ 
750001              700k+

请就如何进行提供一些建议。我曾尝试使用子集函数,但无法将数据帧保持在一起

请参见
切割
查找间隔

df$CDrange <- cut(df$Concentration, c(700000, 800000, 900000, 1000000, Inf),
                  labels=c("700k+","800k+","900k+","1000k+") right=FALSE)

df$CDrange请参见
?cut
?findInterval

df$CDrange <- cut(df$Concentration, c(700000, 800000, 900000, 1000000, Inf),
                  labels=c("700k+","800k+","900k+","1000k+") right=FALSE)
df$CDrange检查此示例:

x <- c(800000, 800001, 800999, 1234567)
paste0(x %/% 1000, ifelse((x %% 1000)>0, "k+", "k"))

#[1] "800k"   "800k+"  "800k+"  "1234k+"
x0,“k+,“k”))
#[1] “800k”“800k+”“800k+”“1234k+”
检查此示例:

x <- c(800000, 800001, 800999, 1234567)
paste0(x %/% 1000, ifelse((x %% 1000)>0, "k+", "k"))

#[1] "800k"   "800k+"  "800k+"  "1234k+"
x0,“k+,“k”))
#[1] “800k”“800k+”“800k+”“1234k+”

您没有识别语言。我根据cbind标记推断R,所以我提交了一个编辑来添加R标记。如果这不正确,请编辑您的帖子以指定语言。您没有识别语言。我根据cbind标记推断R,所以我提交了一个编辑来添加R标记。如果这是不正确的,请编辑您的文章,以指定语言。