r - 关于命名中r语言的简单问题
问题描述
我是 r 的开发初学者。我有一个关于 r 语言的简单问题。感谢这个网站的许多专家,我进步了很多。我一直很感激,任何提出这个问题的人,提前谢谢你。
这是代码。
Data=sample(1:5,size=25,replace=T)
names(Data)=c("a","b","c","d","e")
我想将 1,2,3,4,5 中的每一个命名为 a,b,c,d,e。所以我想我可以通过使用上面的代码来完成这个。
我知道正确的代码是
Data=c("a","b","c","d","e")[Data]
但我不明白为什么这是正确的代码以及为什么我需要最后一个 [Data]。
任何帮助将非常感激!!提前非常感谢你!!:)
解决方案
最后Data
一个为 中的子集值提供索引c("a","b","c","d","e")
。
让我们举一个简单的例子:
考虑,
a <- 1:10
现在要获得第一个值,a
您可以这样做
a[1]
#[1] 1
要获得第三个价值,a
您可以这样做
a[3]
#[1] 3
要获得第 6 和第 8 值,a
您可以这样做
a[c(6, 8)]
#[1] 6 8
如果重复某个索引会发生什么?假设您选择 1 两次和 3 一次。
a[c(1, 1, 3)]
#[1] 1 1 3
如您所见,第一个值被选择了两次,第三次被选择。
现在,Data
您已经充当了子集的索引,而a
成为c("a","b","c","d","e")
a <- c("a","b","c","d","e")
set.seed(123)
Data=sample(1:5,size=25,replace=T)
Data
#[1] 3 3 2 2 3 5 4 1 2 3 5 3 3 1 4 1 1 5 3 2 2 1 3 4 1
现在你使用这个Data
值来从a
给定子集
a[Data]
#[1] "c" "c" "b" "b" "c" "e" "d" "a" "b" "c" "e" "c" "c" "a" "d" "a" "a" "e" "c" "b" "b" "a" "c" "d" "a"
附带说明,有一个内置常量letters
,LETTERS
它提供 26 个小写和大写字母。
letters
#[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
LETTERS
# [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
推荐阅读
- node.js - 无法使用 Sequelize / NodeJS 作为缺少 sslmode 标记连接到 Heroku postgres DB
- r - 如何使用 R 在 Plotly 条形图上排列 x 轴
- vue.js - Vue 3 Storybook Scss 和 Tailwind 配置
- linux - 原子方式的 fork/vfork、exec 和 waitpid
- node.js - 即使在 pubic_html 目录中存在 index.js,也只能在域中看到索引
- python - 如果数组中的数字存在于另一个数组中,如何删除它
- c# - ASP.Net Core - 如何在登录后等待用户身份立即可用?
- ms-access - Ms Access Query 不返回带有 * 通配符的空值
- javascript - Angular 11 自定义指令使插入符号跳转到输入字段中的文本末尾
- java - 我可以从外部 JAR 文件中的另一个包重新加载 Java 类吗?