簡體   English   中英

在R中,如何根據第一列的內容向數據幀添加一列?

[英]In R, how to add a column to a data frame based on the contents of the first column?

我只有一列的數據框看起來像這樣:

>df

     Sample_Name
1    GW16F1_A-1
2    GW16F1_A-10
3    GW16F1_A-12
4    GW16F2_A-2
5    GW16F2_A-3
6    GW16F2_A-5
7    GW16V1_A-6
8    GW16V1_A-7
9    GW16V2_A-8
10   GW16V2_A-9

我想根據Sample_Name列的內容將第二列添加到此數據框,因此輸出如下所示:

>df
     SampleName   SampleGroup
1    GW16F1_A-1   F1
2    GW16F1_A-10  F1
3    GW16F1_A-12  F1
4    GW16F2_A-2   F2
5    GW16F2_A-3   F2
6    GW16F2_A-5   F2
7    GW16V1_A-6   V1
8    GW16V1_A-7   V1
9    GW16V2_A-8   V2
10   GW16V2_A-9   V2

是否存在可以讀取列內容並基於該列輸出新矢量的函數?

給定您的樣本輸入, substr應該足以滿足此要求。

嘗試:

> transform(df, sampleGroup = substr(df$Sample_Name, 5, 6))
   Sample_Name sampleGroup
1   GW16F1_A-1          F1
2  GW16F1_A-10          F1
3  GW16F1_A-12          F1
4   GW16F2_A-2          F2
5   GW16F2_A-3          F2
6   GW16F2_A-5          F2
7   GW16V1_A-6          V1
8   GW16V1_A-7          V1
9   GW16V2_A-8          V2
10  GW16V2_A-9          V2

您也可以使用sub功能。

df$sampleGroup <- sub("^.*(..)_A.*", "\\1", df$Sample_Name)

暫無
暫無

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

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