将 6 个“代码”分配给单个变量的不同值范围

西班牙猎犬

我正在尝试解决以下问题。我有一个变量,我想相应地应用特定代码:

值 0 到 5 = "1"

值 5 到 10 = "2"

值 10 到 20 = "3"

值 >20 = "4"

值 0 到 -5) = "-1"

值 -5 到 -10 = "-2"

值 -10 到 -20 = "-3"

值 <-20 = "-4"

这是感兴趣的变量(“var”)的模拟示例。由于我将它放在一个数据框中,并且一条错误消息说明了“具有经度的条件”,因此我也将它放在了一个数据框中:

var=c(rep(1,3), rep(5,3), rep(10, 3), rep(20,3), rep(-1,3), rep(-5,3), rep(-10, 3), rep(-20,3))
var2=c(rep("long", 12), rep("short", 12))
df=data.frame(var, var2)

我试图用我通过 ifelse 函数处理的实际数据来解决这个问题,但我只知道如何将它应用于三个数据类。

var3=ifelse(df$var >= 20, 3, ifelse(df$var<10,1,2)) 

我还尝试了另一种方法,else if 函数:

df$var3=if (df$var < -20) 
{print("-4")}
else if (df$var < -10) 
{print("-3")}
else if (df$var < -5) 
{print("-2")}
else if (df$var < 0) 
{print("-1")}
else if (df$var > 0) 
{print("1")}
else if (df$var > 5) 
{print("2")}
else if (df$var > 10) 
{print("3")}
else (df$var > 20) 
{print("4")}

但后者只会引发各种错误。我怎样才能最好地做我想做的事?请帮忙。谢谢!

莫里茨·埃弗斯

正如@Sotos' 在他的评论中提到的,我们可以使用cut

eps <- 1e-10;
df$var3 <- cut(
    df$var,
    breaks = c(-Inf, -20 + eps, -10 + eps, -5 + eps, 0, 5 - eps, 10 - eps, 20 - eps, Inf),
    labels = c("-4", "-3", "-2", "-1", "1", "2", "3", "4"))
#   var  var2 var3
#1    1  long    1
#2    1  long    1
#3    1  long    1
#4    5  long    2
#5    5  long    2
#6    5  long    2
#7   10  long    3
#8   10  long    3
#9   10  long    3
#10  20  long    4
#11  20  long    4
#12  20  long    4
#13  -1 short   -1
#14  -1 short   -1
#15  -1 short   -1
#16  -5 short   -2
#17  -5 short   -2
#18  -5 short   -2
#19 -10 short   -3
#20 -10 short   -3
#21 -10 short   -3
#22 -20 short   -4
#23 -20 short   -4
#24 -20 short   -4

请注意,这var3是一个character向量(根据您的问题陈述);numeric如有必要,更改为

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

EF6-将实体分配给变量

来自分类Dev

如何同时将两个不同的值分配给两个变量

来自分类Dev

将值分配给单独的范围

来自分类Dev

将DataTable值分配给变量

来自分类Dev

将ArrayList值分配给变量

来自分类Dev

“无法将'String'类型的值分配给'AnyObject吗?'”,Swift 3,Xcode 8 beta 6

来自分类Dev

将年份分配给过去6个月中的几个月

来自分类Dev

将Excel范围值分配给另一个范围

来自分类Dev

VBA Excel:将范围值分配给新范围

来自分类Dev

VBA Excel:将范围值分配给新范围

来自分类Dev

将存储过程中的单个值选择输出分配给变量(SQL Server)

来自分类Dev

将单个值分配给与常规 JavaScript 相同的多个 AngularJs $scope 变量?

来自分类Dev

根据不同键的值将 JSON 值分配给变量

来自分类Dev

如何将列表中的值、用户输入的代码中的值分配给变量

来自分类Dev

无法将输入元素类型“范围”中的值分配给JavaScript中的变量

来自分类Dev

将多个功能分配给单个变量?

来自分类Dev

如何将两个连续的输入分配给两个不同的变量?

来自分类Dev

将两个输入的值分配给单个输入类型隐藏

来自分类Dev

将变量分配给R中的范围

来自分类Dev

将范围分配给C ++中的变量

来自分类Dev

将范围分配给C ++中的变量

来自分类Dev

将 GET 响应分配给范围变量

来自分类Dev

将String变量的值分配给另一个String变量

来自分类Dev

如何将公式的值(包含变量)分配给另一个变量

来自分类Dev

将`{} + []`分配给变量

来自分类Dev

将一个变量分配给两个值?

来自分类Dev

将一个变量分配给两个值?

来自分类Dev

Python将值从一个变量分配给另一个

来自分类Dev

将静态变量的值分配给类变量

Related 相关文章

热门标签

归档