楼主: zxun
3463 14

[程序分享] R与Excel的数据互传的源代码下载~一行流函数大集合 [推广有奖]

  • 5关注
  • 5粉丝

已卖:131份资源

博士生

88%

还不是VIP/贵宾

-

威望
0
论坛币
466 个
通用积分
35.1656
学术水平
21 点
热心指数
22 点
信用等级
20 点
经验
5726 点
帖子
467
精华
0
在线时间
231 小时
注册时间
2010-5-20
最后登录
2022-11-25

楼主
zxun 发表于 2015-12-20 18:44:30 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
R包DataQuick.zip (28.8 MB, 需要: 5 个论坛币)

简介:

本包增强了R对Excel数据的支持能力,提供的14个函数可以满足用户对Excel数据的导入和输出需求的90%以上,并且全部由R自己的函数编写而成,不易过期也便于修改。


还有2.0版本,避免了<name_rows>和<name_cols>的误操作可能,把这两个的顺序命名功能单分出来成立<index>函数。这两个只下载一个就可以了,建议下载2.0版。



  

功能类

  

函数名



主要功能



特色功能



数据

  

清理



name_rows



把数据的第一列变成行标



列标重排



name_cols



把数据的第一行变为列标



行标重排



into_num



识别带逗号、百分比、货币号的数据



也支持科学计数



单一

  

文件



read_csv



读取csv文件



禁止自动转factor



write_csv



写入csv文件



改正R写行标的bug



复制

  

  

粘贴



recv_matrix



从Excel粘贴方形区域的数据



转成数值



send_matrix



向Excel复制方形区域的数据



也可复制数据框内容



recv_data



从Excel粘贴表格



支持列标与行标的有无



send_data



向Excel复制表格



支持列标与行标的有无



多表

  

数据

  

读写



write_tables



多表纵向写在一个csv文件上



标题居中



read_tables



从一个csv文件纵向读取多表



自动搜索标题



write_csvs



在一个文件夹内存入多个csv文件



支持标题与行标的有无



read_csvs



读取一个文件夹内所有的csv文件



支持标题与行标的有无



out_list



把读取的列表中的数据框提出来





R自带



others



介绍R的相关函数



窗口选择文件、文件夹




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:EXCEL 源代码下载 xcel exce 源代码 Excel 数据 导入 导出

R包 DataQuick v2.0.zip
下载链接: https://bbs.pinggu.org/a-1948196.html

28.58 MB

需要: 2 个论坛币  [购买]

R和Excel的数据互传,2.0版

已有 1 人评分经验 论坛币 收起 理由
李会超 + 60 + 10 精彩帖子

总评分: 经验 + 60  论坛币 + 10   查看全部评分

沙发
zxun(未真实交易用户) 发表于 2015-12-20 18:45:57
R的确有excel包,但是容易装不好。本包是用R自己的语句写成的,不仅能用,还可以改~

藤椅
zxun(未真实交易用户) 发表于 2015-12-20 18:47:37
主程序也就十几kb,附件里excel转csv的软件比较大

板凳
bnuwu(真实交易用户) 发表于 2015-12-20 19:31:15
博主好厉害!!!

报纸
zxun(未真实交易用户) 发表于 2015-12-20 19:33:23
bnuwu 发表于 2015-12-20 19:31
博主好厉害!!!
多谢支持

地板
zxun(未真实交易用户) 发表于 2015-12-20 19:47:35
不好意思,在备用脚本DataQuick_.R里面有个小bug,把recv_data函数重新定义如下:

  1. recv_data <- function( miss_name = 0, all_num = FALSE, info=TRUE ){
  2.     A = read.table("clipboard", colClasses="character", sep="\t")

  3.         if(miss_name==0){ A = name_rows( name_cols(A, info=FALSE), info=FALSE, colN=FALSE) }
  4.     else if( miss_name==1 ){        A = name_cols(A, info=FALSE)}         ##row.names missing       
  5.     else if( miss_name==2 ){ A = name_rows(A, info=FALSE)}        ##col.names missing
  6.     else{}

  7.     if( all_num ){ A = into_num(A) }
  8.     if(info){ edit(A)}
  9. return(A)}
复制代码

7
zxun(未真实交易用户) 发表于 2015-12-21 21:57:21
好像还是有些bug,我再改改。

8
zxun(未真实交易用户) 发表于 2015-12-30 21:57:37
关于行标和列标重新命名的问题,我觉得原来的两个函数的colN和rowN的选项是容易出误操作的,于是在新版把这个可选参数取消了。      FunctionName   Variables                                    
[1,] "name_rows"    "data, info=TRUE"                             
[2,] "name_cols"    "data, info=TRUE"   


把按照1,2,3,4...命名的功能放在新函数index里面,这个函数是直接改写原数据的,还增加了撤销功能。

代码会有点长,但是测试出来是无误的:
  1. #<index>#
  2. dq.record("index","dt_name, axis=NA, add0=FALSE",
  3. '
  4. To automatically rename the rows<axis="r"> or the columns<axis="c">
  5. of the data.frame called <dt_name> by natural numbers 1,2,3... or V1,V2,V3,...
  6. <add0=TRUE> can automatically add 0\'s before numbers to the same digits
  7. e.g. index(\'D\', \'r\', TRUE),    to cancel this change, type <index("BACK")>.
  8. ')
  9. index <- function( dt_name, axis=NA, add0=FALSE ){
  10.     comm <- function( str ) { eval(parse( text=str )) } #to execute <str>
  11.     add_zero <- function( chr, m=2 ) { #to enlong chr to m digits by adding zero(s)
  12.         z = rep(0, m - nchar(chr) )
  13.         paste(c(z, chr), collapse="")}
  14.    
  15.     if (dt_name =="BACK") {
  16.         comm( paste0( "names(", index.bk.n, ") <<- index.bk.c" ) )
  17.         comm( paste0( "row.names(", index.bk.n, ") <<- index.bk.r" ) )
  18.         message( index.bk.n, " has been restored!" )
  19.     }
  20.     else{
  21.         comm( paste0('index.bk.n <<- "', dt_name, '" ')     )  #data name back up
  22.         comm( paste0("index.bk.c <<- names(", dt_name, ")") ) # data col names back up
  23.         comm( paste0("index.bk.r <<- row.names(", dt_name, ")") )  # row names back up
  24.         M = length(index.bk.r);    N = length(index.bk.c)        

  25.         if( axis =="r" ) {            
  26.             row_nm = as.character(1:M)
  27.             if( add0 ){ row_nm = sapply( row_nm, add_zero, m=nchar(M) ) }            

  28.             comm( paste0( "row.names(", dt_name, ") <<- row_nm" ) )
  29.             message(dt_name, " has been changed, \n  and the upper-left corner is:\n")
  30.             comm( paste0( "print(", dt_name,"[1:min(4,M), 1:min(4,N)] )" ) )
  31.         }
  32.         if( axis =="c" ) {
  33.             col_nm = 1:N
  34.             if( add0 ){ col_nm = sapply( col_nm, add_zero, m=nchar(N) ) }
  35.             col_nm = paste0("V", col_nm )            

  36.             comm( paste0( "names(", dt_name, ") <<- col_nm" ) )
  37.             message(dt_name, " has been changed, \n  and the upper-left corner is:\n")
  38.             comm( paste0( "print(", dt_name,"[1:min(4,M), 1:min(4,N)] )" ) )
  39.         }
  40.         else {
  41.         message("<axis> must be 'r' or 'c'! ")
  42.         invisible(NA) }
  43.     }   
  44. }
复制代码

9
zxun(未真实交易用户) 发表于 2015-12-31 21:06:24
zxun 发表于 2015-12-30 21:57
关于行标和列标重新命名的问题,我觉得原来的两个函数的colN和rowN的选项是容易出误操作的,于是在新版把这 ...
新版的附件如下:

R包DataQuick 2.0.zip

28.8 MB

需要: 5 个论坛币  [购买]

使用index函数的版本

10
zxun(未真实交易用户) 发表于 2016-7-24 18:29:11
顶一下,给有需要的人。
第9楼的新版本更好一些,个人觉得。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-21 23:53