r - 在R中删除一行后数据框变成数字
问题描述
我有一个数据框a
> a # a is a data frame
X1.4
one 1
two 2
three 3
four 4
当我想删除一行时
> a = a[-2,] # remove row 2
它变成数值
> a
[1] 1 3 4
为什么??我想将它们保留为具有相同行名和列名的数据框
这是输出:
> dput(a)
structure(list(X1.4 = 1:4), class = "data.frame", row.names = c("one",
"two", "three", "four"))
解决方案
我们可以用drop = FALSE
a[-2, , drop = FALSE]
# X1.4
#one 1
#three 3
#four 4
默认情况?Extract
下显示drop = TRUE
x[i, j, ... , drop = TRUE]
在细节中,它说
drop - 用于矩阵和数组。如果为 TRUE,则将结果强制转换为可能的最低维度(参见示例)。这仅适用于提取元素,不适用于替换。有关详细信息,请参阅下降。
或tidyverse
, 使用slice
library(dplyr)
library(tibble)
a %>%
rownames_to_column('rn') %>%
slice(-2) %>%
column_to_rownames('rn')
# X1.4
#one 1
#three 3
#four 4
推荐阅读
- java - Karatsuba 算法实现:适用于较小的 ns,适用于较大的 ns
- uima - 无位置 GATHER?
- php - 根据键项值将整个 PHP 关联数组平均划分
- angular - Angular2 URL 的 NGINX 301 重定向
- sql-server - SSRS 报表生成器子报表排序
- c++ - C++11 和 C++14 之间函数签名的差异
- vim - 让 vim 理解 tcl 脚本环境变量('gf' 命令)
- java - 如何使它在 JavaFX ComboBox 中没有重复项
- javascript - 如何在输入列表(单选按钮?)上注册点击事件
- typescript - Vue.js - Unknown custom element: