1、R语言可以导出csv格式的文件供Excel使用,具体的使用方法首先打开RStudio软件:
2、先定义一个随机生成一个包含10个正态分布数据的向量,然后输出它,使用csv函数导出csv文件,函数中第一个参数为导出的变量名nx,第二个参数为导出的文件名称和路径:
3、接着按下windows+E键打开资源管理器,双击打开生成的csv文件即在Excel中看到数据了:
我这里有一个读取的实例你可以看一下%% 格式化文本的读 *** 作
%只读形式打开txt文件
file_t = fopen('mytxttxt','r');
%以十进制读取,且读取的数据自动排成一列,排的顺序为:先从第一行左边到第一行右边,然后排第二行
a = fscanf(file_t,'%d');
%关闭文件
fclose(file_t);
%% 使用textscan读取多列数据
file_t = fopen('mytxttxt','r');
%将原来的两列数据以数组原包(cell)的形式读取,cell共有两个元素
a = textscan(file_t,'%d %d');
%c和上面a一样,d返回位置信息
[c,d] = textscan(file_t,'%d %d');
fclose(file_t);
a{1} %原包数据的第一个元素对应第一列
a{2}
c
d
%% textread函数读取,现在不常用
%这种形式将每一列分别给a,b
[a,b] = textread('mytxttxt','%d %d');
a
b
%这种形式将txt文件排成一列赋给c
c = textread('mytxttxt','%d');
c
%% 忽略标题
file_t = fopen('headlinetxt','r');
%忽略掉第一行的标题信息
a = textscan(file_t,'%d %d','headerlines',1);
a
%% 使用textscan扫描字符串中的数据
clc
str_1 = 'the number is 1 2 3 4 5';
%首先使用textscan获取第一个前14个字符
[str1,position1] = textscan(str_1,'%14c',1);
str1{:}; %the number is
position1; %14
%获取字符串的长度
[temp1,temp2] = size(str_1);
%然后读取后面的数字字符串
str_2 = textscan(str_1(position1+1:temp2),'%9c',1);
%将字符串转化为数值
num = str2num(str_2{1})
%% 格式化文本的写 *** 作
%使用fprintf向文件中写入数据
%写形式打开文件,存在就打开,不存在新创建一个文件开始写
file_1 = fopen('text_wtxt','w');
%以数字形式写入数据
fprintf(file_1,'%d',1225);
%关闭文件,返回0表示关闭成功
fclose(file_1);
%% 每写入一次换行或插入想要的字符
file_1 = fopen('text_wtxt','w');
%\r回车符 \n换行符 这里必须回车换行连用
fprintf(file_1,'%d\r\n',[32;34]);
%每写入一个数字,后加一个空格,多列按列输出
temp = randint(4,2);
fprintf(file_1,'%d ',temp);
fclose(file_1);
%% fprintf在命令空间输出
str_1 = 'hello! world!';
%这里fid = 1;这时输出换行只需\n就行,%c为输出单个字符,%s为输出字符串
fprintf(1,'%c\n',str_1);
%% 扫描字符串2
clear
clc
str = '1985 112 -1053';
%将 替换为0
a = find(str == 32);
str(a) = 48;
%下面这这一句相当于+198501120-1053
%不是你给的+19850112-01053
str2num(str)打开正常 文件句柄正常
只不过就是内容空的
不会发生你的说的 null 还是程序强制结束
除非你继续读数据(当然读到空的)
然后赋值运算 有可能会程序崩溃(具体取决你对数据的 *** 作)先读取所有的行,然后遍历这些行,对第一个字符串进行验证即可。
StringBuilder
content
=
new
StringBuilder();
string[]
allLines
=
FileReadAllLines(txtPath);
for
(int
i
=
1;
i
<
allLinesLength;
i++)
{
//
如果是用“Tab”隔开字符串
var
values
=
allLines[i]Split('\t');
if(stringEquals(values[0],你的验证字符串)
{
//
如果相等说明是符合条件的,则记录这一行
contentAppend(allLines[i]+"\r\n");
}
}
//
写入新的txt文件
FileStream
fs
=
new
FileStream(newFilePath,
FileModeOpen,
FileAccessWrite);
byte[]
bytes
=
EncodingDefaultGetBytes(content);
fsWrite(bytes,
0,
bytesLength);
fsClose();假设你读入数据存储到mydata里
mydata <- readtable("e:/grading/scoretxt") //读数据
names(mydata) <- c("X","Y")//改名字
plot(mydata) //画最普通的散点图
其他更复杂的读写和画图 有问题可以联系我详细解答(1)我觉得可以解决吧。你readtable的时候先把第一排忽略掉,然后再处理一下数据,把年份加进来,比如把变量名改成"2003,cases"之类的。
对了,我看到有一个Lao People's什么的国家,单词中间是用空格隔开的,直接readtable要出问题(因为readtable的分隔符默认是空格),这种应该还是要你自己手动处理一下。
(2)我觉得标准的数据都是每一排是一个observation,每一列是一个variable,不会像这样的。不止是R,SAS也是这样的。
PS:墙裂推荐你装一个RStudio,每次用R都直接用RStudio,界面和R比提升不止一个档次。你应该从XRD分析测试中心那里要来原始数据,而不是导出的TXT格式数据。\r\n若是原始数据,还有你会XRD软件分析的话(我用的是Jade50),在里面可以直接将数据拷出来,然后在origin里面直接黏贴,根本不需要你这么麻烦……\r\n如果你有Jade50的话,打开软件,将前面我说的原始谱图导入软件,软件里出现XRD谱图,在Edit中选择Copy Numeric Data 即可将对应的数据拷出来,然后你在Excel中将数据黏贴出来(一定要先到Excel中,因为拷出来的数据里面有导前相,你的TXT里面也有,就是第一行的那些,要把这个去点,然后在origin中绘图),处理好后将数据导入origin,画图。\r\n\r\n如果你不会的话,抱歉了,你只有手动输入数据到origin中了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)