我希望匹配多个字符串标准,然后在R中对行进行子集,使用grepl查找匹配.我从另一个帖子中找到了一个很好的解决方案,其中使用了一些特定的代码(但你明白了):subset(GEMA_EO5, grepl(paste(l, collapse="|"),GEMA_EO5$RefSeq_ID))
我想知道是否有可能在两列中grepl,而不是上面的例子中的RefSeq_ID.也就是说,在grepl中通过任何其他方法.换句话说,我想在l中查找选项,而不仅仅是在一列中,而是在两列中(或者多列中).这可能吗?
例如:3列,ab和c.尽管(3,b)中的格式为"T I",但我希望选择T(第3行和第4行)的标准.它应该识别(4,a)和(3,b),因此链接到前一个问题.我希望它在列a和列b中查找,而不是一个或另一个.
a b c
A A C P L
V V B W E E
W T I P J G
T W P J
Run Code Online (Sandbox Code Playgroud) 我试图使用基于变量的最频繁响应的循环来生成虚拟变量(必须是1/0).经过大量的谷歌搜索,我还没有设法找到解决方案.我已经提取了最频繁的响应(字符串,比如说前五名是"A","B",......,"E")
top5<-names(head(sort(table(data$var1), decreasing = TRUE),5)
我想循环检查另一个变量("var2")是否等于A,如果这样设置= 1,OW = 0,然后使用aggregate()给出摘要.在Stata中,我可以使用`i'来引用循环变量,但不能在R中引用...不起作用的代码是:
for(i in top5) {
data$i.dummy <- ifelse(data$var2=="i",1,0)
aggregate(data$i.dummy~data$age+data$year,data,mean)
}
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我对我认为简单的vba命令有一些问题:
Worksheets("Sheet").Range("namedrange_d").Resize(0, 4).Offset(6, 0).Copy _
Destination:=Worksheets("Sheet1").Range("namedrange").Resize(0, 4).Offset(6, 0)
Run Code Online (Sandbox Code Playgroud)
我想复制5个单元格的默认范围,即参考单元格下面的7个单元格(namedrange_d
).语法有什么问题?
如果更改了cell1,我想使用worksheet_change()来运行macro1,如果更改了cell2,我想使用macro2等.我知道worksheet_change()只允许使用target和sh,并且只能使用一个sub.我以为我可以运行类似的东西:
Private Sub Targets(ByVal Target As Range)
Select Case Target.Address
Case "cell1"
Call SheetChange.macro1
Case "cell2"
Call SheetChange.macro2
Case "cell3"
Call SheetChange.macro3
End Select
End Sub
Run Code Online (Sandbox Code Playgroud)
但是,显然我不能!我也试过了
Private Sub Targets(ByVal Target As Range)
If Target.Address="cell1" Then
Call SheetChange.macro1
ElseIf Target.Address="cell2" Then
Call SheetChange.macro2
Elseif Target.Address="cell3" Then
Call SheetChange.macro3
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
但也没有运气.有帮助吗?