因为我正在处理一个非常复杂的表,在可变位置有讨厌的重复值,所以我想在特定的行和列之间进行字符串搜索。
例如:
table={{"header1", "header2", "header3",
"header4"}, {"falsepositive", "falsepositive", "name1",
"falsepositive"}, {"falsepositive", "falsepositive", "name2",
"falsepositive"}, {"falsepositive", "falsepositive",
"falsepositive", "falsepositive"}}
%//TableForm=
header1 header1 header1 header1
falsepositive falsepositive name1 falsepositive
falsepositive falsepositive name2 falsepositive
falsepositive falsepositive falsepositive falsepositive
例如,我如何在第三列第一到第二行中查找字符串?
我想使用 Which
根据字符串在表中的位置分配值。
例如,
Which[string matched in location one, value, matched in location two, value2]
最佳答案
据我了解,您想要测试给定字符串是否在矩阵的某个子部分中。您可以使用 Part
([[...]]) 和 Span
(;;) 来选择这些子部分,您可以使用它们来指示范围或范围的子样本。可以通过 MemberQ
来测试该小节是否包含您的模式,如下所示:
MemberQ[table[[1 ;; 2, 3]], "name2"]
(* ==> False *)
MemberQ[table[[1 ;; 2, 3]], "header3"]
(* ==> True *)
这样,您的 Which
语句可能如下所示:
myVar =
Which[
MemberQ[table[[1 ;; 2, 3]], "name2"], 5,
MemberQ[table[[2 ;; 3, 4]], "falsepositive"], 6,
...
True, 20
]
关于row - 指定字符串搜索的列和行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6961069/