我想使用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')
我想使用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