改变r中数据集的两个变量的间隔

时间:2015-03-30 06:43:02

标签: r

我有两个变量。为一个变量收集的数据范围为0到100,另一个变量的范围为-1到+1。如何在R?

中将一个变量的间隔从0更改为100到-1到+1?

1 个答案:

答案 0 :(得分:0)

如果您知道要拆分组的值,可以使用重新编码功能,例如来自carsjmisc包。

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