如何将txt文件中的表格数据转换为R语言c()定义的向量格式
文本格式转换实现方案
以下提供三种常用场景的实现方法:
R语言实现(最适配目标输出格式)
你要的输出本身就是R的向量定义格式,直接用R处理最方便:
# 读取原始txt文件,自动识别表头和空格分隔符 df <- read.table("你的文件路径.txt", header = TRUE) # 直接打印目标格式内容到控制台 cat( sprintf('rep=c("%s")\n', paste(df$rep, collapse = '","')), sprintf('trt=c("%s")\n', paste(df$trt, collapse = '","')), sprintf('y=c("%s")\n', paste(df$y, collapse = '","')), sep = "" ) # 如需直接保存到新文件,取消下面代码的注释即可 # sink("output.txt") # 把上面的cat代码块放到sink()和sink()之间就会自动写入文件 # sink()
如果只是要在R环境中使用这三个向量,无需导出成字符串格式,读取完成后直接调用df$rep/df$trt/df$y即可使用。
Python实现
import pandas as pd # 读取原始txt,\s+匹配任意数量空格作为分隔符 df = pd.read_csv("你的文件路径.txt", sep="\s+") # 逐列生成目标格式并打印 for col_name in df.columns: val_str = '","'.join(df[col_name].astype(str)) print(f"{col_name}=c(\"{val_str}\")")
命令行awk实现(适用于Linux/macOS环境,无需打开IDE)
直接在终端运行以下一行命令即可输出结果:
awk 'NR==1{split($0,cols," ")} NR>1{for(i=1;i<=NF;i++) arr[i] = arr[i] (arr[i]?",":"") "\""$i"\""} END{for(j=1;j<=length(cols);j++) print cols[j]"=c("arr[j]")"}' 你的文件路径.txt
注:你提供的目标输出中y列的倒数第二个值为
33.444,和原始数据中的33.44不一致,以上方案均严格按照原始输入数据转换,如需调整数值精度可自行添加格式化逻辑。
内容的提问来源于stack exchange,提问作者cccn
相关产品推荐
相关产品推荐

