首页 > 解决方案 > 需要从另一列中的数据创建数据表列字符串

问题描述

我正在尝试创建一个列,该列使用数据表中另一列的数据并将其放入字符串中。例如,我的 amt 列的值为 16、24、47 和 32。然后我使用 floor(d$amt/10)*10 来获得 10、20、40 和 30 的结果。我想要的列create 将是一列字符串“10-19%”、“20-29%”等。

基本上我想用

cat(floor(d$amt/10)*10, '-', floor(d$amt/10)*10+9, '%', sep="")

但这并没有给出新的专栏。

我尝试将值放入一个临时数组并使用 for 循环创建另一个数组,但我不断收到替换长度为 0 的错误。

temp = floor(d_1990$amt/10)*10
ret = rep(0, 267)
for (i in 1:length(temp)) {
print(i)
x = temp[i]
ret[i] = cat(x, '-', x+10, '%', sep="")
}

标签: r

解决方案


cut或者Hmisc::cut2()绝对是去这里的方式,但您也可以通过以下方式处理您的方法:

df <- data.frame(amt = c(16, 24, 47, 32))    
df$label <- paste0(floor(df$amt / 10) * 10, "-", floor(df$amt / 10) * 10 + 9, "%")

推荐阅读