我試圖將嵌套數據框中的兩個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