如何将数字拆分成R中的数字 [英] How to split a number into digits in R

查看:151
本文介绍了如何将数字拆分成R中的数字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个具有数字ID变量的数据帧,它从多级采样方案中识别主要,次要和极限采样单元。我想将原始ID变量分成三个新的变量,分别标识不同的抽样单位:



示例:

 > 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆