![](/img/trans.png)
[英]R how to remove rows in a data frame based on the first character of a column
[英]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.