我想使用sub命令删除这X,只留下数字.

我想使用%>%管道操作符的方法,因为它避免了创建中间数据帧,并使代码更加清晰.

我试着用了这样的东西,但没有用:

df<-data.frame(x1=c(20,3,2),x2=c(19,4,2), x3=c(20,3,2))%>%
  pivot_longer(cols=x1:x3, names_to = "name1", values_to = "value1")%>%
  sub('X','','name1')

推荐答案

您需要dplyr::mutate来对数据集的列应用像sub这样的函数,创建新列或替换现有列.

library(dplyr)
library(tidyr)

data.frame(x1=c(20,3,2),x2=c(19,4,2), x3=c(20,3,2))%>%
  pivot_longer(cols=x1:x3, names_to = "name1", values_to = "value1") %>%
  mutate(name1 = sub('[^0-9]', '', name1))


# A tibble: 9 × 2
  name1 value1
  <chr>  <dbl>
1 1         20
2 2         19
3 3         20
4 1          3
5 2          4
6 3          3
7 1          2
8 2          2
9 3          2

R相关问答推荐

将饼图插入条形图

方法::slotName如何处理非类、非字符的参数?

如何在R中平滑地绘制线图(不拟合)?

根据列表中项目的名称合并数据框和列表

是否有新方法来更改Facet_WRAP(Ggplot2)中条文本的文本 colored颜色 ?

R -使用矩阵reshape 列表

有没有办法定制Plot(allEffects())面板标题?

将列的值乘以在不同数据集中找到的值

如何根据未知数的多列排除重复行

按组使用dummy r获取高于标准的行的平均值

生存时间序列的逻辑检验

使用点图调整离散轴比例

如何根据顺序/序列从数据框中排除值

向数据添加标签

R代码来迭代列表,将它们组合成一个带有分组变量的数据框?

当某些ID的行数多于其他ID时,按ID对数据帧中的行进行采样

按列对数据进行分组,并判断组中指定列的内容是否相同

根据字符串中的字符数将数据帧字符串列拆分为多个不同的列

使用dplyr在字符矢量中创建多个重复值

根据数据设置离散y轴的限制并编辑y轴标注