r - 将行名转换为数据框中的新列
问题描述
如果已经在其他地方问过这个问题,请提前道歉,但我尝试了不同的尝试,但到目前为止没有任何效果。
在我的数据框中Mesure
,我想将该列的值拆分 Row.names
为两个名为Sample_type
和的新列Locality
。我尝试使用tidyverse
解决方案,但 R 返回我该列不得重复...我该如何修改它?另外,是否可以删除“<”?
> head(Mesure)
Row.names mean_Mesure max_Mesure min_Mesure
1 Aquatic_moss.Paris.AG-110m.< 100 110 90
2 Aquatic_moss.Paris.BE-7. 123 177 53
3 Aquatic_moss.Paris.CO-57.< 40 60 20
4 Aquatic_moss.Paris.CO-58.< 40 50 30
5 Aquatic_moss.Paris.CO-60.< 50 70 30
6 Aquatic_moss.Paris.CS-134.< 200 300 100
>
> library(tidyverse)
> new_df <- Mesure %>%
+ rownames_to_column(var = "Row.names") %>%
+ separate(Row.names,sep = ".",into = c("Sample_type","Locality"))
Error: Column name `Row.names` must not be duplicated.
Run `rlang::last_error()` to see where the error occurred.
解决方案
要将其与第一个“点”分开,您可以使用:
Mesure %>%
separate(Row.names, sep = "\\.", into = c("Sample_type", "Locality"), extra = "merge")
解释:
- 您不需要 convert
rownames_to_column()
,因为 "Row.names" 已经是一列。 sep = "."
是不够的,因为.
它被视为正则表达式。- 列中有很多
.
,因此您需要指定extra = "merge"
仅在第一次出现时进行分隔。如果您只想保留"Paris"
没有AG-110m
etc,请extra = "drop"
在此处指定。
结果extra = "merge"
:
Sample_type Locality mean_Mesure max_Mesure min_Mesure
1 Aquatic_moss Paris.AG-110m.< 100 110 90
2 Aquatic_moss Paris.BE-7. 123 177 53
3 Aquatic_moss Paris.CO-57.< 40 60 20
4 Aquatic_moss Paris.CO-58.< 40 50 30
5 Aquatic_moss Paris.CO-60.< 50 70 30
6 Aquatic_moss Paris.CS-134.< 200 300 100
结果extra = "drop"
:
Sample_type Locality mean_Mesure max_Mesure min_Mesure
1 Aquatic_moss Paris 100 110 90
2 Aquatic_moss Paris 123 177 53
3 Aquatic_moss Paris 40 60 20
4 Aquatic_moss Paris 40 50 30
5 Aquatic_moss Paris 50 70 30
6 Aquatic_moss Paris 200 300 100
如果您需要"<"
放在 Locality 列的末尾,请运行以下命令:
Mesure$Locality <- gsub("<$", "", Mesure$Locality)
where"<$"
表示“<
在字符串的末尾”。
推荐阅读
- spring-boot - Open API 规范中的字段级自定义评估消息
- vba - Powerpoint 更改链接
- autocomplete - MUI AutoComplete:当有两个“全选”选项时,如何使“取消选择”工作?
- javascript - 如何从 Promise 中提取价值并在 React 中显示?
- php - 如何在单击 save_progress 按钮(wordpress)时更新 acf 文件?
- electron - 在 MacOs Electron BrowserWindow.LoadURL 上不起作用
- repo - 如何理解 repo xml 中的“所有者”标签
- android - 未处理的异常:未处理的错误 Null 检查运算符用于空值,发生在 Flutter 中的“AuthBloc”实例中
- javascript - 使用 JavaScript 创建的 Svelte 组件不接收响应式更新
- reactjs - 盖茨比 mailchimp 的 cookie 有问题