所以我需要分离超过500,000个不同行的庞大数据集。每行都是一组数字,例如:
P040120000000000000000001001101210000000120000000000
这里要注意的重要事项是" P04012
"对应于一个特定表的部分。数十万项下来,代码转换成:
P051120150000000000000002158101110000000210000184380
使用" P05112015
"意思不同的东西。每个数字串的前8-10个字符对应于某个表,但截至目前,它们都被归为一个包含一列和500,000行的巨大数据集。如何根据数字将行分成特定的表?
我计划使用read.fwf
将数字字符串拆分成列,所以在这一点上,它只是想弄清楚如何将它们拆分成表格。
答案 0 :(得分:2)
以下是一种可能对您有用的可能性read.fwf()
:
options(stringsAsFactors = F)
# fake data file
tf <- tempfile()
x <- cat(
"P040120000000000000000001001101210000000120000000000",
"P051120150000000000000002158101110000000210000184380",
sep = "\n",
file = tf)
# get table identifiers using read.fwf()
ids <- read.fwf(tf, widths = c(10, 42))
# drop trailing zeros (not sure if this is important)
ids <- gsub("0+$", "", ids$V1)
答案 1 :(得分:1)
根据您的问题和我能理解的内容,您的数据如下: 在CSV文件中说:
RowID,Name
P040120000000000000000001001101210000000120000000000,A
P040130000000000000000001001101210000000120000000000,B
P040140000000000000000001001101210000000120000000000,C
P040150000000000000000001001101210000000120000000000,D
您想要根据前几位创建一个表,下面是我的R代码:
rm(list = ls())
FF = read.csv('/home/my/k.csv', header = TRUE);
S=substr(FF$RowID, 1, 6)
T1 <- table(S[1],as.character(FF$Name[1]))
T2 <- table(S[2],as.character(FF$Name[2]))
T3 <- table(S[3],as.character(FF$Name[3]))
T4 <- table(S[4],as.character(FF$Name[4]))
T1;T2;T3;T4;
如果您有很多行字段,可以使用for loop
创建表格。
希望我回答你的问题。