有幾種方法可以做到這一點,但這裏有一個直觀的方法,可以幫助傳授一些有用[R概念的過程:
x <- c("J96C75D56I96Z95W39S79H89K69Y49B99R49L49U61")
colNames <- paste0(unlist(strsplit(x, ""))[c(TRUE,FALSE,FALSE)],
unlist(strsplit(x, ""))[c(FALSE,TRUE,FALSE)])
values <- paste0(unlist(strsplit(x, ""))[c(FALSE,FALSE,TRUE)])
df <- data.frame(matrix(values,nrow=1))
colnames(df) <- colNames
輸出:
J9 C7 D5 I9 Z9 W3 S7 H8 K6 Y4 B9 R4 L4 U6
1 6 5 6 6 5 9 9 9 9 9 9 9 9 1
編輯:
如果你有多個字符串這樣,你必須合併成一個數據幀,這裏有一個選項:
df <- data.frame(strings=c("J96C75D56I96Z95W39S79H89K69Y49B99R49L49U61",
"J96C75D56I96Z95W39S79H89K69Y49B99R49L49U61"),
stringsAsFactors = FALSE)
colNames <- paste0(unlist(strsplit(df[1,], ""))[c(TRUE,FALSE,FALSE)],
unlist(strsplit(df[1,], ""))[c(FALSE,TRUE,FALSE)])
x <- lapply(df$strings,
function(i) matrix(paste0(unlist(strsplit(i,""))[c(FALSE,FALSE,TRUE)]),nrow=1))
require(plyr)
df <- data.frame(rbind.fill.matrix(x))
colnames(df) <- colNames
輸出:
J9 C7 D5 I9 Z9 W3 S7 H8 K6 Y4 B9 R4 L4 U6
1 6 5 6 6 5 9 9 9 9 9 9 9 9 1
2 6 5 6 6 5 9 9 9 9 9 9 9 9 1
來源
2017-09-11 19:38:13
www
點擊圖片鏈接,我已經使用Excel (text to columns function)轉換..但我想在R. – user8545255
請不要提供數據作爲圖像。將它作爲可以讀入R的文本提供。此外,解釋從輸入到輸出的算法,併爲您嘗試的內容提供R代碼。 –
@ user8545255 - 我注意到需要在您提供的示例字符串的末尾添加一個額外的數字。所以請使用我在嘗試解決方案時提供的示例字符串。 – www