R 等长群

R 等长群,r,R,我正在尝试创建等长的组 x <- data.frame(categories = c(27, 100:1000), categories2 = c(27, 100:1000)/1000, stringsAsFactors = FALSE) 它返回这个输出- [1] 27.0 221.6 416.2 610.8 805.4 1000.0 我想要以下输出- [1] 0 200 400 600 800 1000 类似地,对于变量分类2我想要- [1] 0 0.

我正在尝试创建等长的组

x <- data.frame(categories = c(27, 100:1000), categories2 = c(27, 100:1000)/1000, stringsAsFactors = FALSE)
它返回这个输出-

[1]   27.0  221.6  416.2  610.8  805.4 1000.0
我想要以下输出-

[1]   0  200  400  600  800 1000
类似地,对于变量分类2我想要-

[1]   0  0.2  0.4  0.6  0.8 1
更新 这适用于第一个变量,但不适用于小于1的值

round(seq(min(x$categories, na.rm = TRUE), max(x$categories, na.rm = TRUE), (max(x$categories, na.rm = TRUE) - min(x$categories, na.rm = TRUE))/5),-2)

因此,基本上您希望使用plyr包中的
round_any

首先,将代码
四舍五入(#,100)
,这将给出第一个变量的结果。对于第二个要使用
舍入任何(#,0.1)

如果我用您的语法替换#,它将是:

round_any(seq(min(x$categories,na.rm=TRUE)、max(x$categories,na.rm=TRUE)、(max(x$categories,na.rm=TRUE)-min(x$categories,na.rm=TRUE))/5),100)


round_any(seq(min(x$categories2,na.rm=TRUE),max(x$categories2,na.rm=TRUE),(max(x$categories2,na.rm=TRUE)-min(x$categories2,na.rm=TRUE))/5),.1)
我找到了一种不用任何软件包就可以使用的方法-

round(seq(min(x$categories2, na.rm = TRUE), max(x$categories2, na.rm = TRUE), (max(x$categories2, na.rm = TRUE) - min(x$categories2, na.rm = TRUE))/5)/0.1, 0.1)*0.1

在R中,键入函数时,可以执行F1以查看详细信息

使用“round”表示您可以使用“digits=x”选择所需的位数

因此,对于第一个指定'-2',对于第二个,您只需指定'1':

round(seq(min(x$categories2, na.rm = TRUE), max(x$categories2, na.rm = TRUE), (max(x$categories2, na.rm = TRUE) - min(x$categories2, na.rm = TRUE))/5),  digits = 1)
或缩短为:

round(seq(min(x$categories2, na.rm = TRUE), max(x$categories2, na.rm = TRUE), (max(x$categories2, na.rm = TRUE) - min(x$categories2, na.rm = TRUE))/5), 1)
此外,这不在您的问题中,但您可以使用“length.out”参数而不是“by”参数来缩短行:

round(seq(min(x$categories2), max(x$categories2), length.out=5), 1)

plyr包中的
round(#,digits=-2)
round#any(#,100)
将为您提供第一个变量所需的结果。我真的不明白你对第二个变量的问题,那似乎是第一个变量除以1000。你到底想要什么,除以1000不起作用?请参考“对于我想要的第二个变量-”对于我来说,如果你只指定变量本身(声明,对于我想要的类别2-),就更清楚了。我真的花了很长时间读它。
round(seq(min(x$categories2), max(x$categories2), length.out=5), 1)