R 需要从另一列中的数据创建数据表列字符串
我试图创建一个列,该列使用数据表中另一列的数据,并将其放入字符串中。例如,我有值为16、24、47和32的列amt。然后使用floor(d$amt/10)*10得到10、20、40和30的结果。我要创建的列将是一列字符串“10-19%”、“20-29%”,等等 基本上我想用R 需要从另一列中的数据创建数据表列字符串,r,R,我试图创建一个列,该列使用数据表中另一列的数据,并将其放入字符串中。例如,我有值为16、24、47和32的列amt。然后使用floor(d$amt/10)*10得到10、20、40和30的结果。我要创建的列将是一列字符串“10-19%”、“20-29%”,等等 基本上我想用 cat(floor(d$amt/10)*10, '-', floor(d$amt/10)*10+9, '%', sep="") 但这并没有提供一个新的专栏 我尝试将这些值放入一个临时数组中,并使用for循环生成另一个数组,
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="")
}
您可以使用cut()
标识所需的断点,并使用labels
参数标识要输出的字符串
data <- data.frame(amt = c(16, 24, 47, 32))
data$grp <- cut(data$amt,
breaks = seq(0,100,10),
right = FALSE,
labels = c("0-10%", "11-20%", "21-30%", "31-40%", "41-50%", "51-60%", "61-70%", "71-80%", "81-90%", "91-100%"))
datacut
或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, "%")
df