使用 write.table 将结果附加到 R 中的现有文件
Appending result to existing file in R using write.table
我在 R 中对文件进行了文本挖掘,然后将其作为新列附加到现有文件中。完成后,该列将添加到实际内容之后。我该如何纠正这个问题?
结果如下所示:
Customer Names
T-MAX INDUSTRIAL LTD
T-MAX INDUSTRIAL LTD.
ADCHEM
ADCHEM (AUSTRALIA)
ADCHEM (AUSTRALIA) PTY LTD
AUROBINDO PHARMA (AUSTRALIA)
AUROBINDO PHARMA (AUSTRALIA) PTY
Aurobindo Pharma (Australia) Pty
AUROBINDO PHARMA(AUSTRALIA) PTY LTD
AUROBINDO PHARMA(AUSTRALIA)PTY LTD
V1
tmax industrial
tmax industrial
adchem
adchem
adchem
aurobindo pharma
aurobindo pharma
aurobindo pharma
aurobindo pharma
aurobindo pharma
但我的输出必须如下所示:
Customer Names V1
T-MAX INDUSTRIAL LTD tmax industrial
T-MAX INDUSTRIAL LTD. tmax industrial
ADCHEM adchem
ADCHEM (AUSTRALIA) adchem
ADCHEM (AUSTRALIA) PTY LTD adchem
AUROBINDO PHARMA (AUSTRALIA) aurobindo pharma
AUROBINDO PHARMA (AUSTRALIA) PTY aurobindo pharma
AUROBINDO PHARMA (AUSTRALIA) PTY aurobindo pharma
AUROBINDO PHARMA(AUSTRALIA) PTY LTD aurobindo pharma
AUROBINDO PHARMA(AUSTRALIA)PTY LTD aurobindo pharma
我使用的代码是:
result <- data.frame(text=unlist(sapply(b, `[`)), stringsAsFactors=FALSE)
write.table(result, file="Counter_Party_Testing.csv", sep=".", eol="\n", append=TRUE, row.names=FALSE, col.names=FALSE)
然后结果 Original 也被转换为数据帧 grp1 作为 Origin ,grp2 作为 Result ,现在需要 print 语句的帮助,以使用 for 循环在输出文件的一行中打印两个文件中的每个文件的相同行。
我在打印语句抛出一些错误时使用了这段代码,
for (n in seq_len(nrow(grp1)))
{
print(grp1[n]+','+grp2[n]+)
}
with open('file-one.txt', 'r') as origin:
original_data = origin.readlines()
with open('file-two.txt', 'r' as merge:
merge_data = origin.readlines()
with open('output.csv', 'w' as output:
for i in range(len(original_data)):
output.write(original_data[i].strip() + ', ' + merge_data[i].strip() + '\n')
这解决了数据未正确合并的问题。现在你怎么用write.table
来呈现,不在我日常使用范围之内。但是就原始数据而言,这解决了它。如果愿意,您可以将最终结果放入字符串中而不是将其写入磁盘。
需要注意的一件事是,您可能会像上面的示例一样以尾随 \n
结束,这需要在与同一行上的任何数据合并之前进行条带化。如果合并数据与原始数据的长度不同或更长,索引也可能超出范围。但那是错误处理,我会把它留给你,我刚刚提供了一个解决你问题的概念。除此之外,它的编码非常简单
已通过此代码获得所需的输出:
df <- cbind(origin, result)
# Move to new file
write.table(df, file="new_OT5.csv", sep=",", append=TRUE , row.names=FALSE, col.names=FALSE)
我在 R 中对文件进行了文本挖掘,然后将其作为新列附加到现有文件中。完成后,该列将添加到实际内容之后。我该如何纠正这个问题?
结果如下所示:
Customer Names
T-MAX INDUSTRIAL LTD
T-MAX INDUSTRIAL LTD.
ADCHEM
ADCHEM (AUSTRALIA)
ADCHEM (AUSTRALIA) PTY LTD
AUROBINDO PHARMA (AUSTRALIA)
AUROBINDO PHARMA (AUSTRALIA) PTY
Aurobindo Pharma (Australia) Pty
AUROBINDO PHARMA(AUSTRALIA) PTY LTD
AUROBINDO PHARMA(AUSTRALIA)PTY LTD
V1
tmax industrial
tmax industrial
adchem
adchem
adchem
aurobindo pharma
aurobindo pharma
aurobindo pharma
aurobindo pharma
aurobindo pharma
但我的输出必须如下所示:
Customer Names V1
T-MAX INDUSTRIAL LTD tmax industrial
T-MAX INDUSTRIAL LTD. tmax industrial
ADCHEM adchem
ADCHEM (AUSTRALIA) adchem
ADCHEM (AUSTRALIA) PTY LTD adchem
AUROBINDO PHARMA (AUSTRALIA) aurobindo pharma
AUROBINDO PHARMA (AUSTRALIA) PTY aurobindo pharma
AUROBINDO PHARMA (AUSTRALIA) PTY aurobindo pharma
AUROBINDO PHARMA(AUSTRALIA) PTY LTD aurobindo pharma
AUROBINDO PHARMA(AUSTRALIA)PTY LTD aurobindo pharma
我使用的代码是:
result <- data.frame(text=unlist(sapply(b, `[`)), stringsAsFactors=FALSE)
write.table(result, file="Counter_Party_Testing.csv", sep=".", eol="\n", append=TRUE, row.names=FALSE, col.names=FALSE)
然后结果 Original 也被转换为数据帧 grp1 作为 Origin ,grp2 作为 Result ,现在需要 print 语句的帮助,以使用 for 循环在输出文件的一行中打印两个文件中的每个文件的相同行。
我在打印语句抛出一些错误时使用了这段代码,
for (n in seq_len(nrow(grp1)))
{
print(grp1[n]+','+grp2[n]+)
}
with open('file-one.txt', 'r') as origin:
original_data = origin.readlines()
with open('file-two.txt', 'r' as merge:
merge_data = origin.readlines()
with open('output.csv', 'w' as output:
for i in range(len(original_data)):
output.write(original_data[i].strip() + ', ' + merge_data[i].strip() + '\n')
这解决了数据未正确合并的问题。现在你怎么用write.table
来呈现,不在我日常使用范围之内。但是就原始数据而言,这解决了它。如果愿意,您可以将最终结果放入字符串中而不是将其写入磁盘。
需要注意的一件事是,您可能会像上面的示例一样以尾随 \n
结束,这需要在与同一行上的任何数据合并之前进行条带化。如果合并数据与原始数据的长度不同或更长,索引也可能超出范围。但那是错误处理,我会把它留给你,我刚刚提供了一个解决你问题的概念。除此之外,它的编码非常简单
已通过此代码获得所需的输出:
df <- cbind(origin, result)
# Move to new file
write.table(df, file="new_OT5.csv", sep=",", append=TRUE , row.names=FALSE, col.names=FALSE)