5.13
查看对象类型的函数
mode、class、typeof
d<-data.frame(c1=letters[1:3],c2=1:3,c3=c(1,2,3),stringAsFactor=F)
> sapply(d,mode)
c1 c2 c3
"numeric" "numeric" "numeric"
> sapply(d,class)
c1 c2 c3
"factor" "integer" "numeric"
> sapply(d,typeof)
c1 c2 c3
"integer" "integer" "double"
层层更细化mode()<class()<typeof()
排序函数
sort(x,decreasing=false,na.last=)
decreasing=T/F,是否降序,默认F
na.last=T/F,是否将缺失值放在末尾,默认F
倒序 rev()
重复序列函数
rep(x,times=,length.out=,each=)
length.out 规定序列长度
each 每个元素重复次数
rep(1:3,2) #重复序列两次
[1] 1 2 3 1 2 3
> rep(1:3,each=2) #每个元素重复两次
[1] 1 1 2 2 3 3
> rep(1:3,each=2,length.out=5) #每个元素重复两次,序列长度为5
[1] 1 1 2 2 3
> rep(1:3,c(1,2,3)) #分别规定元素重复个数
[1] 1 2 2 3 3 3
导出多张sheet在同一excel
library("XLConnect")
sep_data<-loadWorkbook('sep_data.xlsx', create = TRUE) # 创建excel工作簿
#创建sheet
for (name in c('bjea','shea','cqea','hbea','gdea','eua','wti','kold','ara','q5500','lng')){createSheet(sep_data, name)}
writeWorksheet(sep_data, data_all_2014_bjea1, 'bjea')
writeWorksheet(sep_data, data_all_2014_shea1, 'shea')
writeWorksheet(sep_data, data_all_2014_cqea1, 'cqea')
writeWorksheet(sep_data, data_all_2014_hbea1, 'hbea')
writeWorksheet(sep_data, data_all_2014_gdea1, 'gdea')
writeWorksheet(sep_data, data_all_2014_eua1, 'eua')
writeWorksheet(sep_data, data_all_2014_wti1, 'wti')
writeWorksheet(sep_data, data_all_2014_kold1, 'kold')
writeWorksheet(sep_data, data_all_2014_ara1, 'ara')
writeWorksheet(sep_data, data_all_2014_q55001, 'q5500')
writeWorksheet(sep_data, data_all_2014_lng1, 'lng')
saveWorkbook(sep_data)
附:加载XLConnect报错
原因是没有Java 急忙忙下载个。。。
下载过程参考:mac JDK安装
Unable to find any JVMs matching version "(null)".
No Java runtime present, try --request to install.
错误: package or namespace load failed for ‘XLConnect’:
loadNamespace()里算'rJava'时.onLoad失败了,详细内容:
调用: fun(libname, pkgname)
错误: JVM could not be found
此外: Warning messages:
1: In system("/usr/libexec/java_home", intern = TRUE) :
运行命令'/usr/libexec/java_home'的状态是1
2: In fun(libname, pkgname) :
Cannot find JVM library 'NA/lib/server/libjvm.dylib'
Install Java and/or check JAVA_HOME (if in doubt, do NOT set it, it will be detected)
嗯。。。。又报错
错误: OutOfMemoryError (Java): Java heap space
Error in .jcheck(silent = FALSE) :
Java Exception <no description because toString() failed>.jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, .jcast(if (inherits(o, "jobjRef") || inherits(o, "jarrayRef")) o else cl, "java/lang/Object"), .jnew("java/lang/String", method), j_p, j_pc, use.true.class = TRUE, evalString = simplify, evalArray = FALSE)new("jobjRef", jobj = <pointer: 0x7fecae226d28>, jclass = "java/lang/OutOfMemoryError")