如何将数字拆分成R中的数字 [英] How to split a number into digits in R
问题描述
示例:
> df [1:2,]
ID Var var1 var2 var3 var4 var5
501901 9 SP.1 1 W 12.10
501901 9 SP 1. 2 W 17.68
我想要什么:
> df [1:2,]
ID1 ID2 ID3 var1 var2 var3 var4 var5
5 01 901 9 SP.1 1 W 12.10
5 01 901 9 SP.1 2 W 17.68
我知道R中有一些功能可用分割字符串,但我找不到相同的数字设施。
谢谢,
Juan
另一种替代方法是使用 read.fwf
重新读取第一列,并指定宽度: / p>
cbind(read.fwf(file = textConnection(as.character(df [,1])),
宽= c(1,2,3),colClasses =character,
col.names = c(ID1,ID2,ID3)),
df [-1])
#ID1 ID2 ID3 var1 var2 var3 var4 var5
#1 5 01 901 9 SP.1 1 W 12.10
#2 5 01 901 9 SP.1 2 W 17.68
这里的一个优点是能够以方便的方式设置结果列名,并确保列是字符,从而保留可能存在的任何前导零。
I have a data frame with a numerical ID variable which identify the Primary, Secondary and Ultimate Sampling Units from a multistage sampling scheme. I want to split the original ID variable into three new variables, identifying the different sampling units separately:
Example:
>df[1:2,]
ID Var var1 var2 var3 var4 var5
501901 9 SP.1 1 W 12.10
501901 9 SP.1 2 W 17.68
What I want:
>df[1:2,]
ID1 ID2 ID3 var1 var2 var3 var4 var5
5 01 901 9 SP.1 1 W 12.10
5 01 901 9 SP.1 2 W 17.68
I know there is some functions available in R to split character strings, but I could not find same facilities for numbers.
Thank you,
Juan
Yet another alternative is to re-read the first column using read.fwf
and specify the widths:
cbind(read.fwf(file = textConnection(as.character(df[, 1])),
widths = c(1, 2, 3), colClasses = "character",
col.names = c("ID1", "ID2", "ID3")),
df[-1])
# ID1 ID2 ID3 var1 var2 var3 var4 var5
# 1 5 01 901 9 SP.1 1 W 12.10
# 2 5 01 901 9 SP.1 2 W 17.68
One advantage here is being able to set the resulting column names in a convenient manner, and ensure that the columns are characters, thus retaining any leading zeroes that might be present.
这篇关于如何将数字拆分成R中的数字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!