簡體   English   中英

如何展開數據框中包含矢量的列

[英]How to expand a column containing vectors in a data frame

如何擴展“代碼范圍”列中的值? 我的數據有兩列: Code RangeLable 我想在數據框中添加第三列,其中將包含向量中的各個值。 我如何在R中做到這一點?

Code Range  Lable Codes(new Column)
61000:61055 Test1 61001
61000:61055 Test1 61002
61000:61055 Test1 61003
61000:61055 Test1 61004
61000:61055 Test1 61005
  .
  .
61000:61055 Test1 61055
0356T:0358T Test2 0356T
0356T:0358T Test2 0357T
0356T:0358T Test2 0358T
S9090:S9090 Test3 S9090
0062T:0062T Test4 0062T

不,我正在尋找類似的東西

Code Range  df.Lable Codes(new Column to be added)
61000:61055 Test1 61001
61000:61055 Test1 61002
61000:61055 Test1 61003
61000:61055 Test1 61004
61000:61055 Test1 61005
  .
  .
61000:61055 Test1 61055
0356T:0358T Test2 0356T
0356T:0358T Test2 0357T
0356T:0358T Test2 0358T
S9090:S9090 Test3 S9090
0062T:0062T Test4 0062T

對於基本R選項,我們可以對sub進行兩次調用以提取代碼范圍的開始和結束字符串。

df$start <- sub(":.*$",    "", df$Code_Range)
df$end   <- sub("^[^:]+:", "", df$Code_Range)

df
   Code_Range Label start   end
1 61000:61055 Test1 61000 61055
2 0356T:0356T Test2 0356T 0356T
3 S9090:S9090 Test3 S9090 S9090
4 0062T:0062T Test4 0062T 0062T

演示版

您是否正在尋找這樣的東西?

df <- read.table(text="Code_Range  Lable
61000:61055 Test1
0356T:0356T Test2
S9090:S9090 Test3
0062T:0062T Test4", header=T)

library(stringr)
data.frame(str_split_fixed(df$Code_Range, ":", 2), df$Lable)


#      X1    X2 df.Lable
# 1 61000 61055    Test1
# 2 0356T 0356T    Test2
# 3 S9090 S9090    Test3
# 4 0062T 0062T    Test4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM