R语言备忘录

Posted 无安书

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言备忘录相关的知识,希望对你有一定的参考价值。


关于另一些读取的问题:
Excel 可能为因为一些特殊的人为原因,出现横向录入的数据:
33 87 31 99 38 42 33 85
59 75 83 50 55 33 33 52
98 88 59 96 32 89 45 78
类似于上述,原本应该是 3列数据:三个变量,8个观测对象。结果却成了横向的数据。
对于这种情形,需要额外处理,这些并不适合被直接读取。一方面,需要先舍弃掉变量名称,只录入数据部分;另一方面,必须对数据进行转置处理。

"
 33 87 31 99 38 42 33 85
 59 75 83 50 55 33 33 52
 98 88 59 96 32 89 45 78 "
 %>% 
  read.table(text =.) %>% t %>% data.frame(row.names = 1:8)
或者,采用读取粘贴板的方式:
read.table('clipboard') %>% t %>% 
  as.data.frame(row.names = 1:8)

之后,就需要重新更改列名称。
值得注意的是:t() 的帮助信息中有这样一段话
A data frame is first coerced to a matrix:
see as.matrix. When x is a vector, 
it is treated as a column, i.e., the result is a 1-row matrix.
对于全部由数字组成的数据,在转置并转为数据框后,数据类型并不会出问题,但含有字符串时,数字将会一并转为字符串类型。
 "
 as   tg  ty qw  af  kl  de   pl 
 59 75 83 50 55 33 33 52
 98 88 59 96 32 89 45 78 "
 %>% 
  read.table(text =.) %>% t %>% 
  data.frame(row.names = 1:8) %>% str

而返回结果为:
 'data.frame'8 obs. of  3 variables:
 $ X1: chr  "as" "tg" "ty" "qw" ...
 $ X2: chr  "59" "75" "83" "50" ...
 $ X3: chr  "98" "88" "59" "96" ...

需要将第 2,3 数据转为 integer:
> str(p)
'data.frame'8 obs. of  3 variables:
 $ V1: chr  "as" "tg" "ty" "qw" ...
 $ V2: chr  "59" "75" "83" "50" ...
 $ V3: chr  "98" "88" "59" "96" ...
> p[,2:3] <- sapply(p[,2:3],as.integer)
> str(p)
'data.frame'8 obs. of  3 variables:
 $ V1: chr  "as" "tg" "ty" "qw" ...
 $ V2: int  59 75 83 50 55 33 33 52
 $ V3: int  98 88 59 96 32 89 45 78
如果只是一列需要修改类型,只针对该列进行修改即可;但如果是多列进行修改,则需要进行批量操作!使用 apply() 族函数能够简化代码,提高效率。

事实上,这个问题的解决,需要从源头做起,Excel 的粘贴选项中已经提供了 转置 功能, 在没有必要瞎折腾。同时所谓的 t()  其实就是取 transpose 的首字母。Excel 中也有 转置功能的函数: TRANSPOSE() 意为:转置单元格区域。

实在没有必要利用代码瞎折腾。数据必须要是符合格式要求,一切不符合要求的数据,都是特别脏的数据,根本没有读取的必要。

第二个问题,关于 Excel 中的百分号显示以及货币符号显示。
$33.00  ¥59.00  9800%
$87.00  ¥75.00  8800%
$31.00  ¥83.00  5900%
$99.00  ¥50.00  9600%
$38.00  ¥55.00  3200%
$42.00  ¥33.00  8900%
$33.00  ¥33.00  4500%
$85.00  ¥52.00  7800%

事实上,这一类数据,最好的方式,就是在 Excel 中改为 常规类型 ,之后的读取就会很容易。并不建议在 R 语言里瞎折腾和提取。需要说明的是:R 语言并不能识别货币单位及百分号作为数据类型。
---end---

以上是关于R语言备忘录的主要内容,如果未能解决你的问题,请参考以下文章

R语言备忘录

R语言备忘录

Flutter 布局备忘录

在R Markdown中创建备忘录

vs code 自定义代码片段

r R有用的代码片段