R中用黏贴板读取excel数据以及用R生成人名

本人尚在超级菜鸟级别,中间有些代码写的很low,请不要见笑!

1.今天先跟大家分享一个小技巧,用黏贴板将excel中的数据读进R

首先选中要读入R的数据

如图,上面是我分析的病人相关资料,Ctrol+C选中目标区域,接着在R运行以下代码:

excel_clinic_data <- read.table("clipboard",sep="\t",header = T)

运行后就可以看到我们想要读到R中的数据已经读进来了,超级方便。

注意:经本人试验,好像不支持不连续区域的选择,如果选择了不连续的区域,R会默认把中间没有选中的区域也读进来。

2. 用R中的几个小函数生成人名

大家可以看到,上面的病人信息其实我已近简单的处理过了,毕竟不能透露病人的隐私。于是心血来潮,想到用R来生成人名。我们想到的就是从一系列随机的字符串中随机挑出来三个字组成词了,也就是人名,虽然结果有点low,但是重要的是掌握原理,提高自己的编程水平。#从网上随机copy了一段文字 

names_pool <- c("推荐华东师范大学汤银才老师的")
#写个小函数,每次取三个数字,其实是为了取对应位置的文字
func <- function(x) {
  number <- sample(1:str_count(names_pool),3,replace=T)
  return(number)
}
#总共需要10个人名
numbers <- lapply(1:10,func)
results <- do.call(rbind,numbers)
#将文字分开变成单个字
names <- unlist(str_split(names_pool,""))
#间一个空矩阵存放名字
name <- matrix(ncol=1,nrow = dim(results)[1])

for( i in 1:dim(results)[1]) {
  name[i,1] <- str_c(names[results[i,1]],names[results[i,2]],names[results[i,3]])
}

  

上述代码运行之后,结果如上图。上面的代码中用到了“stringr”包,个人觉得这个包还是挺好用的。本人也是刚接触R不久,所以暂时没有找到更简单的方法,如有,还望不吝赐教。

 

posted @ 2017-03-16 23:21  何帅  阅读(4173)  评论(0编辑  收藏  举报