如何解决R在读取数据时列数比列名多的问题
不管是读取数据还是写入,R都是在工作路径中完成的。
所以首先我们要知道我们的R所在的工作路径是在哪里。
使用getwd()函数来获取我们的工作路径。
如何用R读取数据(1)下面查看工作路径里面有哪些文件,使用dir()函数如何用R读取数据(1)如果你所想导入的数据并不在你当前的工作路径中,有两种方法可以解决。
第一种就是把数据文件放到工作路径中,第二种方法就是更改工作路径。
更改工作路径使用setwd()函数。
比如你想要把工作路径设置成桌面如何用R读取数据(1)现在我读取我工作路径中,名字为hw1_data.csv的文件。
使用read.csv()函数如何用R读取数据(1)也可以使用read.table()函数来读取csv格式的文件。
由于csv文件的分隔符是“,”所以我们在用read.table()函数的时候,sep参数,我们要设定为sep=“,”如何用R读取数据(1)6发现read.table()读出来的数据,列名并不是我们文件中的列名,而是V1,V2。
。
。
我们需要加上header这个参数来修改这个问题如何用R读取数据(1)7另外在read.table()函数族中还有很多参数,对我们读取数据都有帮助,大家可以去了解下。
使用?read.table()进行了解
R 矩阵是否可以按名取列
R语言读取excel文件文件其实有很多的包可以做到,最常用的就是xlsx和readxl, 首先,安装并载入读取excel文件所用的包:install.packages("xlsx") library(xlsx)或者,install.packages("readxl") library(readxl)两个包的基本介绍xlsx是用R把excel文件中的工作表以data.frame的格式读入R语言,他有两个常用函数,其中read.xlsx2通常会比read.xlsx读取的速度更快一些,因为它的好多工作是利用Java完成的,所以速度有所提升,但是在读取子数据集的时候没有read.xlsx稳定性好。
read.xlsx(file, sheetIndex, sheetName=NULL, rowIndex=NULL, startRow=NULL, endRow=NULL, colIndex=NULL, as.data.frame=TRUE, header=TRUE, colClasses=NA, keepFormulas=FALSE, encoding="unknown", ...)read.xlsx2(file, sheetIndex, sheetName=NULL, startRow=1, colIndex=NULL, endRow=NULL, as.data.frame=TRUE, header=TRUE, colClasses="character", ...)注:sheetIndex:工作表单号rowIndex:行号,就是你想读取那些行header:表头,就是有没有列名。
比如姓名,年龄,学号等startRow:比如你想从第五行开始读取,就设置startRow = 5readxl包可以用来读取xls和xlsx格式的文件read_excel(path, sheet = 1, col_names = TRUE, col_types = NULL, na = "", skip = 0)注:sheet:读取的工作表col_names: 如果是FALSE的话,就表示第一行不是列名,R会自动给你取成x1,x2...colt_types: blank,numeric,date,textna: 缺失值,默认空着的单元是缺失值,你也可以自己指定,比如认为999是缺失值...
R语言read.table()读取表格文件时,如何去掉列名称的前?
函数 read.table 是读取矩形格子状数据最为便利的方式。
因为实际可能遇到的情况比较多,所以预设了一些函数。
这些函数调用了 read.table 但改变了它的一些默认参数。
注意,read.table 不是一种有效地读大数值矩阵的方法:见下面的 scan 函数。
一些需要考虑到问题是:编码问题如果文件中包含非-ASCII字符字段,要确保以正确的编码方式读取。
这是在UTF-8的本地系统里面读取Latin-1文件的一个主要问题。
此时,可以如下处理 read.table(file("file.dat", encoding="latin1"))注意,这在任何可以呈现Latin-1名字的本地系统里面运行。
首行问题我们建议你明确地设定 header 参数。
按照惯例,首行只有对应列的字段而没有行标签对应的字段。
因此,它会比余下的行少一个字段。
(如果需要在 R 里面看到这一行,设置 header = TRUE。
)如果要读取的文件里面有行标签的头字段(可能是空的),以下面的方式读取 read.table("file.dat", header = TRUE, row.names = 1)列名字可以通过 col.names 显式地设定;显式设定的名字会替换首行里面的列名字(如果存在的话)。
分隔符问题通常,打开文件看一下就可以确定文件所使用的字段分隔符,但对于空白分割的文件,可以选择默认的sep = "" (它能使用任何空白符作为分隔符,比如空格,制表符,换行符), sep = " " 或者 sep = "t"。
注意,分隔符的选择会影响输入的被引用的字符串。
如果你有含有空字段的制表符分割的文件,一定要使用 sep = "t"。
引用 默认情况下,字符串可以被 " 或 ' 括起,并且两种情况下,引号内部的字符都作为字符串的一部分。
有效的引用字符(可能没有)的设置由参数 quote 控制。
对于sep = "n",默认值改为 quote = ""。
如果没有设定分隔字符,在被引号括起的字符串里面,引号需要用 C格式的逃逸方式逃逸,即在引号前面直接加反斜杠 。
如果设定了分隔符,在被引号括起的字符串里面,按照电子表格的习惯,把引号重复两次以达到逃逸的效果。
例如 'One string isn''t two',"one more"可以被下面的命令读取 read.table("testfile", sep = ",")这在默认分隔符的文件里面不起作用。
缺损值 默认情况下,文件是假定用 NA 表示缺损值,但是,这可以通过参数 na.strings 改变。
参数 na.strings 是一个可以包括一个或多个缺损值得字符描述方式的向量。
数值列的空字段也被看作是缺损值。
在数值列,值 NaN,Inf 和 -Inf 都可以被接受的。
尾部空字段省略的行从一个电子表格中导出的文件通常会把拖尾的空字段(包括?堑姆指舴? 忽略掉。
为了读取这样的文件,必须设置参数 fill = TRUE。
字符字段中的空白如果设定了分隔符,字符字段起始和收尾处的空白会作为字段一部分看待的。
为了去掉这些空白,可以使用参数 strip.white = TRUE。
空白行默认情况下,read.table 忽略空白行。
这可以通过设置 blank.lines.skip = FALSE 来改变。
但这个参数只有在和 fill = TRUE 共同使用时才有效。
这时,可能是用空白行表明规则数据中的缺损样本。
变量的类型除非你采取特别的行动,read.table 将会为数据框的每个变量选择一个合适的类型。
如果字段没有缺损以及不能直接转换,它会按 logical, integer, numeric 和complex 的顺序依次判断字段类型。
如果所有这些类型都失败了,变量会转变成因子。
参数 colClasses 和 as.is 提供了很大的控制权。
as.is 会抑制字符向量转换成因子(仅仅这个功能)。
colClasses运行为输入中的每个列设置需要的类型。
注意,colClasses 和 as.is 对每 列专用,而不是每个变量。
因此,它对行标签列也同样适用(如果有的话)。
注释默认情况下,read.table 用 # 作为注释标识字符。
如果碰到该字符(除了在被引用的字符串内),该行中随后的内容将会被忽略。
只含有空白和注释的行被当作空白行。
如果确认数据文件中没有注释内容,用 comment.char = "" 会比较安全 (也可能让速度比较快)。
逃逸许多操作系统有在文本文件中用反斜杠作为逃逸标识字符的习惯,但是Windows系统是个例外(在路径名中使用反斜杠)。
在 R 里面,用户可以自行设定这种习惯是否用于数据文件。
read.table 和 scan 都有一个逻辑参数 allowEscapes。
从 R 2.2.0 开始,该参数默认为否,而且反斜杠是唯一被解释为逃逸引用符的字符(在前面描述的环境中)。
如果该参数设为是,以C形式的逃逸规则解释,也就是控制符如 a, b, f, n, r, t, v,八进制和十六进制如 40 和 x2A 一样描述。
任何其它逃逸字符都看着是自己,包括反斜杠。
常用函数 read.csv 和 read.delim 为 read.table 设定参数以符合英语语系本地系统中电子表格导出的CSV和制表符分割的文件。
这两个函数对应的变种 read.csv2 和read.delim2 是针对在逗号作为小数点的国家使用时设计的。
如果 read.table 的可选项设置不正确,错误信息通常以下面的形式显示 Error in scan(file = file, what what, sep = sep 或者 Error in read.table("files.dat", header = TRUE) : more columns than column names这些信息可能足以找到问题所在,但是辅助函数 count.fields 可以进一步的深入研究问题所在。
读大的数据格子(data grid)时,效率最重要。
设定 ...
SQL语句select * from 表名 group by 列名--不是 GROUP BY 表达式
这个问题是解析的时候Oracle不知道select num from table_number where dwdm='111' and rownum= to_date('2015-01-01', 'yyyy-mm-dd'))) / (to_date('2015-4-16', 'yyyy-mm-dd') - to_date('2015-01-01', 'yyyy-mm-dd') + 1) FROM dual; 电脑蓝屏又叫蓝屏死机,指的是微软Windows操作系统在无法从一个系统错误中恢复过来时所显示的屏幕图像。
***STOP 0x0000001E(0xC0000005,0xFDE38AF9,0x0000001,0x7E8B0EB4) KMODE_EXCEPTION_NOT_HANDLED *** 其中错误的第一部分是停机码(Stop Code)也就是STOP 0x0000001E,用于识别已发生错误的类型, 错误第二部分是被括号括起来的四个数字集,表示随机的开发人员定义的参数,第三部分是错误名。
信息第一行通常用来识别生产错误的驱动程序或者设备,这种信息多数很简洁,但停机码可以作为搜索项在微软知识库和其他技术资料中使用。
SQL 是1986年10 月由美国国家标准局(ANSI)通过的数据库语言美国标准,接着,国际标准化组织(ISO)颁布了SQL正式国际标准。
1989年4月,ISO提出了具有完整性特征的SQL89标准,1992年11月又公布了SQL92标准,在此标准中,把数据库分为三个级别:基本集、标准集和完全集。
各种不同的数据库对SQL语言的支持与标准存在着细微的不同,这是因为,有的产品的开发先于标准的公布,另外,各产品开发商为了达到特殊的性能或新的特性,需要对标准进行扩展。
已有100多种遍布在从微机到大型机上的数据库产品SQL,其中包括DB2、SQL/DS、ORACLE、INGRES、SYBASE、SQLSERVER、DBASEⅣ、PARADOX、MICROSOFTACCESS等。
SQL语言基本上独立于数据库本身、使用的机器、网络、操作系统,基于SQL的DBMS产品可以运行在从个人机、工作站到基于局域网、小型机和大型机的各种计算机系统上,具有良好的可移植性。
可以看出标准化的工作是很有意义的。
早在1987年就有些有识之士预测SQL的标准化是“一场革命”,是“关系数据库管理系统的转折点”。
数据库和各种产品都使用SQL作为共同的数据存取语言和标准的接口,使不同数据库系统之间的互操作有了共同的基础,进而实现异构机、各种操作环境的共享与移植。
1974年,在IBM公司圣约瑟研究实验室研制的大型关系数据库管理系统SYSTEM R 中,使用SEQUEL语言(由BOYCE 和CHAMBERLIN 提出),后来在SEQUEL 的基础上发展了SQL 语言。
SQL语言是一种交互式查询语言,允许用户直接查询存储数据,但它不是完整的程序语言,如它没有DO或FOR 类似的循环语句,但它可以嵌入到另一种语言中,也可以借用VB、C、JAVA等语言,通过调用级接口(CALL LEVEL INTERFACE)直接发送到数据库管理系统。
SQL基本上是域关系演算,但可以实现关系代数操作。
在java中多表连查怎么用Result取相同的列名
当我们的调查问卷在把调查数据拿回来后,我们该做的工作就是用相关的统计软件进行处理,在此,我们以spss为处理软件,来简要说明一下问卷的处理过程,它的过程大致可分为四个过程:定义变量、数据录入、统计分析和结果保存.下面将从这四个方面来对问卷的处理做详细的介绍.Spss处理:第一步:定义变量大多数情况下我们需要从头定义变量,在打开SPSS后,我们可以看到和excel相似的界面,在界面的左下方可以看到Data View, Variable View两个标签,只需单击左下方的Variable View标签就可以切换到变量定义界面开始定义新变量。
在表格上方可以看到一个变量要设置如下几项:name(变量名)、type(变量类型)、width(变量值的宽度)、decimals(小数位) 、label(变量标签) 、Values(定义具体变量值的标签)、Missing(定义变量缺失值)、Colomns(定义显示列宽)、Align(定义显示对齐方式)、Measure(定义变量类型是连续、有序分类还是无序分类).我们知道在spss中,我们可以把一份问卷上面的每一个问题设为一个变量,这样一份问卷有多少个问题就要有多少个变量与之对应,每一个问题的答案即为变量的取值.现在我们以问卷第一个问题为例来说明变量的设置.为了便于说明,可假设此题为:1.请问你的年龄属于下面哪一个年龄段( )? A:20—29 B:30—39 C:40—49 D:50--59那么我们的变量设置可如下: name即变量名为1,type即类型可根据答案的类型设置,答案我们可以用1、2、3、4来代替A、B、C、D,所以我们选择数字型的,即选择Numeric, width宽度为4,decimals即小数位数位为0(因为答案没有小数点),label即变量标签为“年龄段查询”。
Values用于定义具体变量值的标签,单击Value框右半部的省略号,会弹出变量值标签对话框,在第一个文本框里输入1,第二个输入20—29,然后单击添加即可.同样道理我们可做如下设置,即1=20—29、2=30—39、3=40—49、4=50--59;Missing,用于定义变量缺失值, 单击missing框右侧的省略号,会弹出缺失值对话框, 界面上有一列三个单选钮,默认值为最上方的“无缺失值”;第二项为“不连续缺失值”,最多可以定义3个值;最后一项为“缺失值范围加可选的一个缺失值”,在此我们不设置缺省值,所以选中第一项如图;Colomns,定义显示列宽,可自己根据实际情况设置;Align,定义显示对齐方式,有居左、居右、居中三种方式;Measure,定义变量类型是连续、有序分类还是无序分类。
以上为问卷中常见的单项选择题型的变量设置,下面将对一些特殊情况的变量设置也作一下说明.1.开放式题型的设置:诸如你所在的省份是_____这样的填空题即为开放题,设置这些变量的时候只需要将Value 、Missing两项不设置即可.2.多选题的变量设置:这类题型的设置有两种方法即多重二分法和多重分类法,在这里我们只对多重二分法进行介绍.这种方法的基本思想是把该题每一个选项设置成一个变量,然后将每一个选项拆分为两个选项项,即选中该项和不选中该项.现在举例来说明在spss中的具体操作.比如如下一例:请问您通常获取新闻的方式有哪些( )1 报纸 2 杂志 3 电视 4 收音机 5 网络在spss中设置变量时可为此题设置五个变量,假如此题为问卷第三题,那么变量名分别为3_1、3_2、3_3、3_4、3_5,然后每一个选项有两个选项选中和不选中,只需在Value一项中为每一个变量设置成1=选中此项、0=不选中此项即可.使用该窗口,我们可以把一个问卷中的所有问题作为变量在这个窗口中一次定义。
到此,我们的定义变量的工作就基本上可以结束了.下面我们要作就是数据的录入了.首先,我们要回到数据录入窗口,这很简单,只要我们点击软件左下方的Data View标签就可以了.第二步:数据录入Spss数据录入有很多方式,大致有一下几种:1.读取SPSS格式的数据2.读取Excel等格式的数据3.读取文本数据(Fixed和Delimiter)4.读取数据库格式数据(分如下两步)(1)配置ODBC (2)在SPSS中通过ODBC和数据库进行但是对于问卷的数据录入其实很简单,只要在spss的数据录入窗口中直接输入就可以了,只是在这里有几点注意的事项需要说明一下.1. 在数据录入窗口,我们可以看到有一个表格,这个表格中的每一行代表一份问卷,我们也称为一个个案.2. 在数据录入窗口中,我们可以看到表格上方出现了1、2、3、4、5…….的标签名,这其实是我们在第一步定义变量中,我们为问卷的每一个问题取的变量名,即1代表第一题,2代表第二题.以次类推.我们只需要在变量名下面输入对应问题的答案即可完成问卷的数据录入.比如上述年龄段查询的例题,如果问卷上勾选了A答案,我们在1下面输入1就行了(不要忘记我们通常是用1、2、3、4来代替A、B、C、D的).3.我们知道一行代表一份问卷,所以有几分问卷,就要有几行的数据.在数据录入完成后,我们要做的就是我们的关键部分,即问卷的统计分析了,因为这时我们已经把问卷中的数据录入我们的软件中了.第三步:统计分析有了数据,可以利用SPSS的各种分析方法进行分析,但选择何种统计分析方法,即调用哪个统计分析过程,...
如何用R语言在数据中提取指定列数据,并且形成一个新的数据表
方法很简单,用chsdsk命令即可详解如下:开始--运行--输入cmd--输入chkdsk 盘符: /f ,例如:“chkdsk d: /f”。
等命令运行完即可。
这里要注意的是,那个冒号后面要空一格,别跟着就写"/f"故障现象不管是移动硬盘还是U盘,包括本地电脑上的硬盘分区,双击打开时,提示:“无法打开H盘 ,文件或目录损坏且无法读取,....”。
有的分区格式变为RAW。
数据丢失原因分析出现这种错误提示,是由于各种原因导致的磁盘文件目录(FAT,MFT)出错造成。
主要发生在优盘、MP3、移动硬盘等移动设备上,其中大容量(160G以上)NTFS分区格式的外置移动硬盘发生几率最高最多。
产生的原因很多,一般有下面几种原因:1、没有正常插拔移动设备,系统没有完成完整的读写操作,致使文件目录信息错乱和不完整。
比如我们复制一个文件到移动设备,关机重启、拔取后,再次打开使用或到别的电脑上使用时出现症状。
2、选用了劣质产品,包括劣质电源、主板、数据线、特别是劣质外置硬盘盒。
产品的电源、主控电路不稳定,致使磁盘寻址出错,写信息错乱。
3、使用了PQ、PM等磁盘分区调整工具。
4、病毒、硬盘硬件本身故障、工作期间突然停电。
恢复效果质量如果是大移动硬盘并且是NTFS分区格式的,恢复质量十分理想,基本都能成功恢复文件和目录结构。
如果是FAT或FAT32格式,根据损坏程度不同,恢复质量效果比NTFS格式结构的分区稍差一些,所以日常使用建议使用NTFS格式分区,其数据安全性更高一些。
数据恢复准备不知从谁开始的,网上有人告诉你先将分区格式化一遍,然后再用一些数据恢复软件恢复数据,大哥!大哥!!大哥!!!,你千万不要这么做,格式化后,特别是FAT格式分 区,恢复出来的数据其目录结构是不完整的,特别是经常编辑的最需要的文件,因为文件碎片比较多,恢复软件失去FAT表的对比分析,恢复出来的文件大多打不开。
下面操作前建议先做镜像备份!你想走捷径的话,可以先碰一下运气,可以先 CHKDSK 一下试试(本文开头所说的方法)。
chkdsk是Windows操作系统自带的磁盘检查修复命令。
先看一下你出错设备的盘符,然后 点取--开始--运行,在运行对话框中输入 CHKDSK H:/F 回车。
注意,H 是你要检查修复的盘符。
之后系统会开始检查磁盘分区。
如果系统能够发现问题并且在修复能力范围之内的话,Windows自动修复出错的分区。
如果没有反映,不要拔掉设备,重新启动电脑试试,故障依旧的话,说明你中了高级奖!中了高级奖怎么办???不要气馁!!!方法总是有的。
我曾经使用过硬盘分区表修复工具进行修复,但没有效果,算了,不还原分区了,多次试验彻底让我失望了。
现在要考虑如何将分区里的文件还原回来,因为那才是最重要的!我使用的是EasyRecovery 。
通过漫长的等待之后,数据终于还原出来了。
我还原后的所有文件都在^_^运气比较好呀^_^,只是一些目录没有了,还好,只要文件在就好 ^_^ 那可是多年心血的资料呀!!! 另外网上说使用 R-STUDIO 也可以,这次没有试,以前用过R-STUDIO 还原过U盘内的数据,效果不错!^_^ 附 chkdsk 参数说明: CHKDSK [volume[[path]filename]]] [/F] [/V] [/X] [/C] [/L[:size]] volume 指定驱动器(后面跟一个冒号)、装入点或卷名。
filename? 仅用于 FAT/FAT32: 指定要检查是否有碎片的文件 /F 修复磁盘上的错误。
/V 在 FAT/FAT32 上: 显示磁盘上每个文件的完整路径和名称。
在 NTFS 上: 如果有清除消息,将其显示。
/R 查找不正确的扇区并恢复可读信息(隐含 /F)。
/L:size 仅用于 NTFS:? 将日志文件大小改成指定的 KB 数。
如果没有指定大小,则显示当前的大小。
/X 如果必要,强制卷先卸下。
卷的所有打开的句柄就会无效(隐含 /F) /I 仅用于 NTFS: 对索引项进行强度较小的检查 /C 仅用于 NTFS: 跳过文件夹结构的循环检查。
/I 和 /C 命令行开关跳过卷的某些检查,减少运行 Chkdsk 所需的时间修复移动硬盘“文件或目录损坏且无法读取”错误 昨天在用移动硬盘下载文件时忽然出错,以为是小错误并没在意,直接关机拔掉了硬盘。
今天再连到电脑上时,发现硬盘无法读取,XP提示“文件或目录损坏且无法读取”。
换了台电脑试了下,问题依旧。
根据提示,这应该只是文件目录索引损坏,修复索引即可。
因为这个硬盘是NTFS格式,所以想到用CHKNTFS命令修复,可是却显示无法读取。
又尝试用CHKDSK /F命令,结果修复刚开始就停住了,跳出命令行提示符,修复失败。
看来不仅仅是目录索引的的问题,那是不是硬盘盒的问题呢?于是换了个硬盘盒再试,还是不行。
难道是分区表出错吗?因为查看该盘属性时显示的数据都是0,所以想到修复分区表试试。
用SPFDISK查看分区信息,结果却很正常。
不明所以的情况下,就想重置MBR试试。
重置MBR后,重启进入XP,结果问题依旧。
重启再进入DOS,用支持NTFS的KV3000杀毒程序扫描,可以读取该盘,且文件目录和文件都在。
这说明文件并没有受损,那应该还是目录索引的问题,可为什么用CHKDSK不行呢?回到XP,再次用CHKDSK /F命令修复,没想到这次却顺利修复完成。
打...