r - 使用 cbind () 和 data.frame() 在数据框中分配新向量
问题描述
我正在使用 cbind() 和 data.frame() 将向量放入数据框中。我想在构建数据框时添加一个新向量(价格/货币)。
flowers1 : 使用 data.frame() 创建一个数据框;'=' 分配新向量
Flowers2:使用 cbind() 创建数据框;'=' 分配新向量
flowers3 : 使用 data.frame() 创建一个数据框;'<-' 分配新向量
flowers4:使用 cbind() 创建数据框;'<-' 分配新向量
花 1 和 2 是我所期望的,但在花 3 中,第三列的标题是奇数。而在flowers4 中,缺少第三列的标题。
我的问题是:
这是什么原因造成的?
使用 '<-' 和 '=' 分配向量之间还有其他区别吗
(我只知道这两种分配方法有不同的优先级和不同的变量寿命?
创建数据框时分配新向量是否非法或不建议?
谢谢!
name <- c('iris','daisy')
color <- c('purple','blue')
flowers1 <- data.frame(name,color,price = c(10,20))
flowers1
# output
name color price
1 iris purple 10
2 daisy blue 20
flowers2 <- cbind(name,color,price = c(10,20))
flowers2
# output
name color price
[1,] "iris" "purple" "10"
[2,] "daisy" "blue" "20"
flowers3 <- data.frame(name,color,price <- c(10,20))
flowers3
# output
name color price....c.10..20.
1 iris purple 10
2 daisy blue 20
flowers4 <- cbind(name,color,money <- c(10,20))
flowers4
# output
name color
[1,] "iris" "purple" "10"
[2,] "daisy" "blue" "20"
解决方案
使用 = 设置函数参数,使用 <- 作为赋值运算符。这可以解释一点:
A = LETTERS[1:5]
B = letters[1:5]
d <- data.frame(A , B, CC <- seq(5, 1, -1))
d
CC # lives outside d!
d1 <- data.frame(A, B, DD = seq(5, 1, -1))
d1
DD # does not live outside d1
推荐阅读
- python - 如何从另一个函数停止while true循环
- python - 从币安获取历史数据
- jhipster - JHipster Registry - 部署到 ECS 的问题
- c++ - Visual Studio Code 无法同时编译 cpp 和 Cuda (cu) 文件
- python - 使用 Python 估计延迟微分方程的最佳参数
- css - 使用 JSDOM 编辑 CSS 样式表
- css - React app / CSS:变换和动画功能的问题
- reactjs - 使用 Typescript 响应上下文语法以加载 Spinner
- javascript - 无法将原始 SQL 转换为续集
- r - 当我已经在 R 中进行 PCA 分析时,如何构建 PCR?