【发布时间】:2018-03-28 22:12:11
【问题描述】:
我有一个向量 list.exp2,其中每个条目是一个或多个用逗号分隔的字符串。我想拆分每个条目并根据该条目中存在的分隔符数量获取前 n 个字符串。
我已经尝试了下面的代码,但还没有成功
refined.final.list <- as.vector(sapply(list.exp2, function(n)
ifelse(count.fields(textConnection(list.exp2[n]), sep = ",") < 3,
unlist(strsplit(list.exp2[n], ","))[1],
count.fields(textConnection(list.exp2[n]), sep = ",") < 5,
unlist(strsplit(list.exp2[n], ","))[1:2],
unlist(strsplit(list.exp2[n], ","))[1:4])))
基本上,我使用 ifelse 和 count 函数来计算分隔符的数量,而 unlist 函数应该给我相应的拆分元素。
list.exp2 向量如下所示
lis.exp2 <- c("ISTITUTO PER LA SINTESI ORGANICA E LA FOTOREATTIVITÀ (ISOF-CNR),
SEZIONE DI FERRARA, VIA L. BORSARI 46, 44100 FERRARA, ITALY",
"FLUXOME SCIENCES A/S, SØLTOFTS PLADS, BUILDING 223, DK-2800 KGS. LYNGBY, DENMARK",
"FERDINAND-BRAUN-INSTITUT FÜR HÖCHSTFREQUENZTECHNIK, GUSTAV-KIRCHHOFF-STR. 4, 12489 BERLIN, GERMANY")
我们将不胜感激任何有关如何更正此代码的见解。
【问题讨论】:
-
ifelse(test, truevalue, falsevalue)应该只有三个参数,而不是五个。如果您有多个条件,则需要嵌套它们 - 例如ifelse(test, truevalue, ifelse(test2, truevalue2, falsevalue)) -
我实际上也在做同样的事情。它只是看起来像五个论点。我有另一组代码具有更好的 ifelse 显示结构。