我试图将嵌套数据框中的两个ID列重命名为数字字符。我试着用下面的代码做它:在数据框中重命名ID
原始数据帧是:
x_1 <- c("A1", "A1","A1", "B10", "B10", "B10","B10", "B500", "C100", "C100", "C100", "D40", "G100", "G100")
y_1 <- c(rep("M", 8), rep("O", 6))
z_1 <- c(1.1, 1.4, 1.6, -1.0, -2.2, 3, 2.3, 2.0, -3.4, -4.1, 2, 2, 2.4, -3.5)
A <- data.frame(x_1, z_1, y_1)
所需数据帧是B:
y_3 <- factor(A$x_1, levels = unique(A$x_1), labels = 1:length(unique(A$x_1)))
y_4 <- factor(A$y_1, levels = unique(A$y_1), labels = 1:length(unique(A$y_1)))
B <- data.frame(y_3, z_1, y_4)
我只是想知道是否有人知道的其他更简单或更有效的方法 - 可能在R中使用其他包。我的原始数据非常大,效率在此处至关重要。另外,我还没有完全想到将y_1
重命名为1s和2s之外的其他变量的方法(例如,我更愿意将"M"
更改为100而将"O"
更改为101而不是1和2)。
感谢
这是一个你在那里的甜蜜代码,工作得很好,阅读和理解也更容易。谢谢! – 2014-12-03 12:20:48
你介意解释最后两个代码,特别是'cumsum(c(TRUE,x [-1]!= x [-length(x)]))''部分。我猜这是说最后一列不应该被视为一个累积和?谢谢 – 2014-12-03 12:27:26
@John是的,我会更新帖子 – akrun 2014-12-03 12:28:15