r - 如何创建名称在字符向量中指定的新列
问题描述
price <- c(
1.5,
4)
flavor <- c(
"Plain",
"Choc")
df <- data.frame(price, flavor)
df_s <- Matrix::sparse.model.matrix(~ . - 1, data = df)
toAdd <- c("flavorStraw", "flavorBlue")
期望的输出:
df_s 带有两个附加列(“flavorStraw”和“flavorBlue”),其值为 . (稀疏矩阵中的空值)
解决方案
它只需要赋值为0。单个值可以循环填充行
df[toAdd] <- 0
-输出
df
price flavor size form
1 1.5 Plain 0 0
2 4.0 Choc 0 0
更新
基于更新即sparseMatrix
,一个选项是cbind
df_s <- cbind(df_s, matrix(0, ncol = length(toAdd),
nrow = nrow(df_s), dimnames = list(NULL, toAdd)))
df_s
2 x 5 sparse Matrix of class "dgCMatrix"
price flavorChoc flavorPlain size form
1 1.5 . 1 . .
2 4.0 1 . . .
推荐阅读
- android - AppCompatButton 子类具有透明背景
- docker - Hyperledger Fabric:无法将交易“xxx”的对等响应发送给订购者
- ssh - Ansible 无法构造所需的 ssh 命令
- scala - 检查rabbitMQ消息是否路由成功
- java - 导致 libplayer.so 的 APK 崩溃的错误
- javascript - 使用正则表达式和 .replace() 在字符串中动态查找短语
- javascript - React Native 动态 StackNavigator
- sql-server - 尝试从代理作业加载超过 50K 记录时,SSIS 包挂起
- arrays - RuntimeWarning:在 double_scalars 中遇到除以零
- java - 将列表与 hamcrest 进行比较