我正在尝试处理一些非常混乱的数据.我需要通过样本ID合并两个包含不同类型数据的大数据帧.问题是一个表的样本ID有许多不同的格式,但大多数都包含所需的ID字符串,用于匹配其ID中的某个位置,例如,一个表中的样本"1234"在另一个表中具有"ProjectB(1234)"的ID .
我做了一个简单的可重复的例子.
a<-data.frame(aID=c("1234","4567","6789","3645"),aInfo=c("blue","green","goldenrod","cerulean"))
b<-data.frame(bID=c("4567","(1234)","6789","23645","63528973"), bInfo=c("apple","banana","kiwi","pomegranate","lychee"))
Run Code Online (Sandbox Code Playgroud)
使用merge可以获得部分方法:
merge(a,b, by.x="aID", by.y="bID", all=TRUE)
aID aInfo bInfo
1 1234 blue <NA>
2 3645 cerulean <NA>
3 4567 green apple
4 6789 goldenrod kiwi
5 (1234) <NA> banana
6 23645 <NA> pomegranate
7 63528973 <NA> lychee
Run Code Online (Sandbox Code Playgroud)
但是喜欢的输出基本上是:
ID aInfo bInfo
1 1234 blue banana
2 3645 cerulean pomegranate
3 4567 green apple
4 6789 goldenrod kiwi
5 63528973 <NA> lychee
Run Code Online (Sandbox Code Playgroud)
我只是想知道是否有办法将grep纳入这个或另一个R-tastic方法?
提前致谢
我希望将一大组缩放因子应用于数据框,这些因子特定于样本来自的组,特别是样本的每个变量.我试图为这个问题构建一个最小的例子.
缩放因素
Batch A B
Q 1.01 1.31
R 0.90 1.22
S 1.04 1.09
Run Code Online (Sandbox Code Playgroud)
数据
Batch A B
Q 23 10
Q 22 11
R 27 12
R 26 13
S 22 14
S 24 15
Run Code Online (Sandbox Code Playgroud)
那么,比方说,批次Q样本1将从23,10到23.23,13.1
我意识到在解决方案中可能会有一个应用,但我正在努力找出从哪里开始.任何帮助非常感谢:-)
scaling_factors_example<-data.frame(Batch=c("Q","R","S"),A=c(1.01,0.9, 1.04), B=c(1.31, 1.22, 1.09))
data_example<-data.frame(Batch=c("Q","Q","R","R","S","S"), A=c(23,22,27,26,22,24), B=c(10,11,12,13,14,15))
Run Code Online (Sandbox Code Playgroud)