R tips must know by Geospatial Analyst
1) Merge ESRI shape file with external CSV or data frame to plot the map with CSV/data frame variables
2) Combine multiple data frames with similar names into a single data frame using matched column names.
Ex. Use gtools library and smart bind function.
library (“gtools”)
df_result <- smartbind(df1,df2)
3) List files recursively inside directory tree.
Ex. List all *.txt files inside directory tree
fileList=list.files(path= “file Location”,pattern="txt$",all.files=TRUE,full.names=TRUE,recursive=TRUE)
Try to play with grep() if you need more specific filter based on file names not by files types only.
4) List all files in home directory
library(maptools)
library(sp)
library(shapefiles)
library(RColorBrewer) # creates nice color schemes
library(classInt) # finds class intervals for continuous variables
#Read files
csvvalues=read.csv(“c:/csv_path ")
shapefile= readShapePoly("c:/shape.shp")
#Merge data by unique ID
shapefile@data <-data.frame(shapefile@data, csvvalues, by="ID")
attach(shapefile@data)
# Define the number of classes to be mapped
nclass <- 5
# Set the color ramp that will be used to plot these classes
cols <- brewer.pal(nclass,"YlGnBu")
# Set the class breakpoints using equal intervals
# Can also use quantiles or natural breaks - see help(classIntervals)
breaks <- classIntervals(Column_name_to_be_mapped, nclass, style="quantile")
# Based on the breakpoints and color ramp, specify a color to plot for each polygon
plotcols <- findColours(breaks, cols)
# Generate the map
plot (shapefile, col=plotcols)
2) Combine multiple data frames with similar names into a single data frame using matched column names.
Ex. Use gtools library and smart bind function.
library (“gtools”)
df_result <- smartbind(df1,df2)
3) List files recursively inside directory tree.
Ex. List all *.txt files inside directory tree
fileList=list.files(path= “file Location”,pattern="txt$",all.files=TRUE,full.names=TRUE,recursive=TRUE)
Try to play with grep() if you need more specific filter based on file names not by files types only.
4) List all files in home directory
setwd(homeDir)
home_files_list<-list.files(pattern="*.txt")
or
home_files_list<-list.files()
5) Replace NA by 0
Ex. X[is.na(X[])]<-0
6) Exclude/Remove columns from data frame
Ex: Select only matched columns
X[, colnames(X) != c('col1','col2')]
X[, colnames(X) != ‘col3’
home_files_list<-list.files(pattern="*.txt")
or
home_files_list<-list.files()
5) Replace NA by 0
Ex. X[is.na(X[])]<-0
6) Exclude/Remove columns from data frame
Ex: Select only matched columns
X[, colnames(X) != c('col1','col2')]
X[, colnames(X) != ‘col3’
*****************************************
ReplyDelete#Merge data by unique ID
shapefile@data <-data.frame(shapefile@data, csvvalues, by="ID")
*****************************************
That does not work for this purpose at all. That is generating a new variable with name "by" and value all equal to "ID".