我有两个变量。为一个变量收集的数据范围为0到100,另一个变量的范围为-1到+1。如何在R?
中将一个变量的间隔从0更改为100到-1到+1?答案 0 :(得分:0)
如果您知道要拆分组的值,可以使用重新编码功能,例如来自car或sjmisc包。
library(sjmisc)
x <- sample(1:100, 1000, replace = T)
y <- rec(x, "min:33=-1; 34:67=0; 68:max=1")
table(x, y)
您也可以使用基础cut
功能,但它会将值返回为factor
。
y <- cut(x, 3)
levels(y) <- c("-1", "0", "1")
table(y)
使用as.numeric(y) - 2
,您的值会再次从-1到1。
如果要将范围从.1设置为1,而不是范围差异为2(从-1到1),则范围差异为.9(从.1到1)。所以我只计算了比例,即2 / .9
。 (old range-diff / new range-diff)。
你的解决方案是(草率的黑客......)
# your values copy / pasted
dummy <- c("1 0 0.06 -0.58 -0.87 -1 -0.77 -1 -0.62 0.83 -0.86 -0.83 0.42 -0.6 1 0.47 0.94 0.23 0.46 -0.98 -0.04 -0.39 0.99 0.81 0.11 -0.85 -0.56 0.14 1 -0.79 -0.06 -0.58 0.79 0.71 -0.2 0.69 -0.33 0.64 -0.76 0.14 -0.41 1 -0.83 0.01 -0.86 -0.65 -0.58 0.5 -0.39 -0.8 -0.36 0.17 -0.96 -0.46 -0.78")
# convert to numeric vector
dat <- as.numeric(unlist(strsplit(dummy, " ", fixed = T)))
# new range from .1 to 1
dat / (2 / .9) + .55