我有一个向量“nameAlpha”,例如c(“Mark Twain”,“Phil Hall”,“Michael P. O'Connor”,“”,...)。我想将每个名字传递给另一个向量“nameAlpha_first”。我运行这个
nameAlpha_first <- sapply(strsplit(nameAlpha, "\\s+"), "[[", 1)
Run Code Online (Sandbox Code Playgroud)
但我得到
Error in FUN(X[[12L]], ...) : subscript out of bounds
Run Code Online (Sandbox Code Playgroud)
难道是因为向量中很少有元素是空的吗?我该如何解决它?
尝试通过比较列中prod存在的这两列来过滤此 df lob:
可重现的代码:
df <- data.frame(prod = c("CES", "Access", "Access", "CES"), lob = c("Access;Entertainment", "CES", "Access", "Access;Entertainment;CES"))
prod lob
1 CES Access;Entertainment
2 Access CES
3 Access Access
4 CES Access;Entertainment;CES
Run Code Online (Sandbox Code Playgroud)
预期结果:
prod lob
1 Access Access
2 CES Access;Entertainment;CES
Run Code Online (Sandbox Code Playgroud)
我尝试将 lob 列拆分为向量或包含元素的列表,然后dplyr filter与grepl(prod, lob), or 一起使用prod %in% lob,但似乎都不起作用
df %>%
filter(prod %in% lob)
df %>%
mutate(lob = strsplit(lob, ";")) %>%
filter(prod %in% lob)
df %>%
mutate(lob = strsplit(lob, ";")) …Run Code Online (Sandbox Code Playgroud) 我正在尝试拆分格式非常不同的列。例如:
pharma <- c("DOXORUBICINA CLORH. FAM 50MG POL O LIOF",
"DROSPIRENONA/ETINILESTR. 3/0,02MG CM REC",
"DROSPIRENONA/ETINILESTR. 3/0,03MG CM REC",
"ETRAVIRINA 100 MG CM",
"AGALSIDASA ALFA 1MG/ML X 3,5 ML FAM")
Run Code Online (Sandbox Code Playgroud)
我正在使用separate()在两个不同的列中进行拆分(我需要将产品名称(即 DOXORUBICINA CLORH. FAM)和详细信息(50MG POL O LIOF)分开)。代码是:
separate(data.frame(A = pharma), col = "A" , into = c("x","y"),sep = "(?<=[a-zA-Z])\\s*(?=[0-9])")
Run Code Online (Sandbox Code Playgroud)
但我有来自 R 的下一个:
x y
1 DOXORUBICINA CLORH. FAM 50MG POL O LIOF
2 DROSPIRENONA/ETINILESTR. 3/0,02MG CM REC <NA>
3 DROSPIRENONA/ETINILESTR. 3/0,03MG CM REC <NA>
4 ETRAVIRINA 100 MG CM …Run Code Online (Sandbox Code Playgroud) 我有一个字符串:
String <- "268.1,271.1,280.9,294.7,285.6,288.6,384.4\n124.8,124.2,116.2,117.7,118.3,122.0,168.3\n18,18,18,18,18,18,18"
Run Code Online (Sandbox Code Playgroud)
我想将它分成三个基于\n.
我使用以下代码做到了这一点:
strsplit(String, "\n")
Run Code Online (Sandbox Code Playgroud)
结果是三个子串。
我怎样才能得到三个独立的存在,以便我可以使用每个向量进行计算?
如何标记子字符串以创建数值向量?
我有一些以农村财产命名的文件,如下所示:
v1 <- c("Badger", "Hill", "Farm", "1.json")
v2 <- c("Buffalo", "Pass", "Farm", "2.json")
> v1
[1] "Badger" "Hill" "Farm" "1.json"
> v2
[1] "Buffalo" "Pass" "Farm" "2.json"
Run Code Online (Sandbox Code Playgroud)
我设法分割文件名元素,但我只想保留那些不包含任何数字的元素。期望的输出是:
> v1
[1] "Badger" "Hill" "Farm"
> v2
[1] "Buffalo" "Pass" "Farm"
Run Code Online (Sandbox Code Playgroud)
很简单,但我就是无法理解它。我怎样才能做到这一点?
我有一个小问题,例如
a <- as_tibble(c("201.1, 202 (abc) 203, 204", "301 / 302.22 def, 303"))
value
<chr>
1 201.1, 202 (abc) 203, 204
2 301 / 302.22 def, 303
Run Code Online (Sandbox Code Playgroud)
现在我想获得一个包含两列的 data.frame
[1,] 201.1 202
[2,] 301 302.22
Run Code Online (Sandbox Code Playgroud)
通过剪切第二个数字之后的所有内容(第一行中的 202,第二行中的 302.22)并使用分隔符“,”或“/”分隔表达式的剩余部分以获得两列。
我试图理解strsplit和的paste函数,它们是反函数.但是,当我strsplit是一个向量时,会返回一个列表,如下所示:
> strsplit(c("on,e","tw,o","thre,e","fou,r"),",")
[[1]]
[1] "on" "e"
[[2]]
[1] "tw" "o"
[[3]]
[1] "thre" "e"
[[4]]
[1] "fou" "r"
Run Code Online (Sandbox Code Playgroud)
我试着使用lapply,以cat列表的元素重新走到一起,但它不工作:
> lapply(strsplit(c("on,e","tw,o","thre,e","fou,r"),","),cat)
on etw othre efou r[[1]]
NULL
[[2]]
NULL
[[3]]
NULL
[[4]]
NULL
Run Code Online (Sandbox Code Playgroud)
相同的公式paste而不是cat实际上什么也没做!为什么我得到这些结果?我怎样才能得到我想要的结果,这又是原始的矢量?
(显然,在我的实际代码中,我试图用更多的东西来做strsplit,cat而不仅仅是返回原始向量,但我认为这个问题的解决方案对我来说很有效.谢谢!)
我有数据框
df=data.frame(x=rnorm(8),y=runif(8),longstring=c("foo_100_Case1","foo_125_Case1","bar_100_Case1","bar_125_Case1","foo_100_Case2","foo_125_Case2","bar_100_Case2","bar_125_Case2"),stringsAsFactors = F)
Run Code Online (Sandbox Code Playgroud)
我需要将最后一列拆分为三列,分隔符为"_".我一直在做以下事情:
a=matrix(unlist(strsplit(df$longstring,"_",fixed=T)),8,3,byrow = T)
df$type=a[,1]
df$point=a[,2]
df$case=a[,3]
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有一种更简单的方法:组合strsplit和unlist特别笨拙,并且它不会使代码非常易读.
我有一个字符串,a="100111"并希望将其拆分并存储为b=("1","0","0","1","1","1")长度为6的列表.我尝试使用srtsplit进行拆分,但最终得到一个列表b = ("1" "0" "0" "1" "1" "1"),长度为1.最终目标是获取字符串中的哪些位置为"100111"1.例如,当我拆分并将其存储在b中("1","0","0","1","1","1")然后使用which(b=='1')它想要得到(1,4,5,6)
我想通过句号或句号将段落分成句子.但在执行此操作时,十进制数字,电子邮件ID也会分成不同的数据帧.任何人都可以帮助我将数据拆分成句子.
例如:
aa = "For Important Disclosure information, please visit our website at 0.5% https://javatar.bluematrix.com/sellside/Disclosures.action or call 1.888.JEFFERIES. An organization. 0.5% have an analysis."
Run Code Online (Sandbox Code Playgroud)
这应该分成
For Important Disclosure information, please visit our website at 0.5% https://javatar.bluematrix.com/sellside/Disclosures.action or call 1.888.JEFFERIES.An organization.0.5% have an analysis码:
sentences = as.matrix(unlist(strsplit(aa,"\\.")))
Run Code Online (Sandbox Code Playgroud)