[R language] (II) data input
1, Keyboard input
The edit function in R will click a text editor that allows manual input
example:
mydata <- data.frame(age=numeric(0),gender=character(0),weight=numeric(0)) #numeric(length)
An assignment statement like age=numeric(0) will create a variable with the specified pattern but no actual data
Specific steps:
1. Create an empty data frame to determine the data mode
2. Use edit to call the text editor
> mydata <- edit(mydata)
Note: you cannot directly edit (), because the function edit () actually operates on a copy of the object and needs to be assigned to a target. In this case: mydata
The statement mydata < - edit (mydata) is equivalent to fix(mydata)
> fix(mydata)
In addition, data sets can be embedded directly in the program (write data sets out in the program)
For example:
> mydata <- ' + age gender weight + 25 m 166 + 30 f 115 + 18 f 120 + ' > mydata1 <- read.table(mydata,header = TRUE) Error in file(file, "rt") : Unable to open the link in addition: Warning message: In file(file, "rt") : could not open file' age gender weight 25 m 166 30 f 115 18 f 120 ': Invalid argument > mydata2 <- read.table('mydata',header = TRUE) Error in file(file, "rt") : Unable to open the link in addition: Warning message: In file(file, "rt") : could not open file'mydata': No such file or directory > mydata3 <- read.table(text=mydata,header = TRUE) > mydata4 <- read.table(header = TRUE, text=mydata) > mydata3 age gender weight 1 25 m 166 2 30 f 115 3 18 f 120 > mydata4 age gender weight 1 25 m 166 2 30 f 115 3 18 f 120
Note: the data set embedded in the code needs to be clearly indicated=*
Unlike reading externally**
2, Import data from delimited text files
> grades <- read.table('studentgrades.csv',header = TRUE,row.names = 'studentid',sep = ',') Warning message: In read.table("studentgrades.csv", header = TRUE, row.names = "studentid", : incomplete final line found by readTableHeader on 'studentgrades.csv' > grades [1] row.names first second [4] math science social.studies <0 that 's ok> (Or 0-Length row.names)
> a <- read.table('scan.csv',header = TRUE,row.names = 'site_color') Error in data[[rowvar]] : attempt to select less than one element in get1index > a <- read.table('scan.csv',header = TRUE,row.names = 'code') Error in data[[rowvar]] : attempt to select less than one element in get1index
?
(some steps have location problems in practice
Solution: csv xlsx swap read table xlsx
Try separately
3, Import Excel data
The best way to read an excel file is to export it as a comma separated file (csv) in Excel and import it into R in the way described above
in addition
You can import Excel worksheets directly using xlsx package
(you also need the xlsxjars package, the rjava package, and a working Java)
Troubleshooting:
1. Pay attention to whether the relevant packages are updated and whether the file name of the automatically updated java changes, resulting in the invalidation of the previously added environment variables
2. Error reporting in the following form
Load the required program package: rJava Error: package or namespace load failed for 'rJava': loadNamespace()Li Suan'rJava'Time.onLoad Failed, details: call: fun(libname, pkgname) error: No CurrentVersion entry in Software/JavaSoft registry! Try re-installing Java and make sure R and Java have matching architectures. Error: Unable to load program package'rJava'
Pay attention to checking environment variables
(thanks for the article) Reading Excel file with R: handling of xlsx package loading exception)
example:
> mydataframe <- read.xlsx('data',1) Error in loadWorkbook(file, password = password) : Cannot find data#Note: add format > mydataframe <- read.xlsx('data.xlsx',header = TRUE) Error in read.xlsx("data.xlsx", header = TRUE) : Please provide a sheet name OR a sheet index. #Note to add sheet serial number > mydataframe <- read.xlsx('data.xlsx',1) > mydataframe NA. mpg cyl disp hp drat wt 1 Mazda RX4 21.0 6 160.0 110 3.90 2.620 2 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 3 Datsun 710 22.8 4 108.0 93 3.85 2.320 4 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 5 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 6 Valiant 18.1 6 225.0 105 2.76 3.460 7 Duster 360 14.3 8 360.0 245 3.21 3.570 8 Merc 240D 24.4 4 146.7 62 3.69 3.190 9 Merc 230 22.8 4 140.8 95 3.92 3.150 10 Merc 280 19.2 6 167.6 123 3.92 3.440 11 Merc 280C 17.8 6 167.6 123 3.92 3.440 12 Merc 450SE 16.4 8 275.8 180 3.07 4.070 13 Merc 450SL 17.3 8 275.8 180 3.07 3.730 14 Merc 450SLC 15.2 8 275.8 180 3.07 3.780 15 Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 16 Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17 Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 18 Fiat 128 32.4 4 78.7 66 4.08 2.200 19 Honda Civic 30.4 4 75.7 52 4.93 1.615 20 Toyota Corolla 33.9 4 71.1 65 4.22 1.835 21 Toyota Corona 21.5 4 120.1 97 3.70 2.465 22 Dodge Challenger 15.5 8 318.0 150 2.76 3.520 23 AMC Javelin 15.2 8 304.0 150 3.15 3.435 24 Camaro Z28 13.3 8 350.0 245 3.73 3.840 25 Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 26 Fiat X1-9 27.3 4 79.0 66 4.08 1.935 27 Porsche 914-2 26.0 4 120.3 91 4.43 2.140 28 Lotus Europa 30.4 4 95.1 113 3.77 1.513 29 Ford Pantera L 15.8 8 351.0 264 4.22 3.170 30 Ferrari Dino 19.7 6 145.0 175 3.62 2.770 31 Maserati Bora 15.0 8 301.0 335 3.54 3.570 32 Volvo 142E 21.4 4 121.0 109 4.11 2.780 qsec vs am gear carb 1 16.46 0 1 4 4 2 17.02 0 1 4 4 3 18.61 1 1 4 1 4 19.44 1 0 3 1 5 17.02 0 0 3 2 6 20.22 1 0 3 1 7 15.84 0 0 3 4 8 20.00 1 0 4 2 9 22.90 1 0 4 2 10 18.30 1 0 4 4 11 18.90 1 0 4 4 12 17.40 0 0 3 3 13 17.60 0 0 3 3 14 18.00 0 0 3 3 15 17.98 0 0 3 4 16 17.82 0 0 3 4 17 17.42 0 0 3 4 18 19.47 1 1 4 1 19 18.52 1 1 4 2 20 19.90 1 1 4 1 21 20.01 1 0 3 1 22 16.87 0 0 3 2 23 17.30 0 0 3 2 24 15.41 0 0 3 4 25 17.05 0 0 3 2 26 18.90 1 1 4 1 27 16.70 0 1 5 2 28 16.90 1 1 5 2 29 14.50 0 1 5 4 30 15.50 0 1 5 6 31 14.60 0 1 5 8 32 18.60 1 1 4 2
Function read The simplest form of xlsx () is (file, n)
ps:
1.read.xlsx () some options allow you to specify specific rows (rowIndex) and columns (colIndex) in the worksheet, together with the classes (colclasses) of each column.
2. For large workbooks, you can use read Xlsx2() function
Please refer to the help document help (read.xlsx) for more details
There are other packages and operation options that help optimize the import process
eg:XLConnec (dependent) t and openxlsx (java independent)
Several temporarily unused data sources
XML
Web
SPSS
SAS
Stata
NetCDF
HDF5
Access database management system
Read text reference