gpt4 book ai didi

r - 在整个列的 data.frame 列中获取向量的第 n 个元素 - R

转载 作者:行者123 更新时间:2023-12-02 06:15:31 25 4
gpt4 key购买 nike

我有一个名为ga.topPagesdata.frame

>ga.topPages
pagePath pageTitle pageviews
1 /meine-inhalte/2 Übersichtsseite 4986
2 /mein-profil/1 Mein Profil 805
3 /meine-nachrichten Meine Nachrichten 661
4 /app.html Login 531
5 / Login 420

我想从 pagePath 列中获取“/”之间的第一个元素。使用 strsplit 我创建了一个辅助列:

ga.topPages$temp1 <- strsplit(ga.topPages$pagePath,"/")

因此,列 temp1 是一个对象向量:

> head(ga.topPages$temp1, 1)
[[1]]
[1] "" "meine-inhalte" "2"

如前所述,我只需要获取此向量的第 n 个元素。我可以通过定义以下函数来单独获取此元素(例如,在下面的示例中,我获取了第一个观察结果的第二个元素):

(function(x){ga.topPages$temp1[[x]][2]})(1)

我想对 data.frame 中的整个列执行此操作。我想我可以通过创建一个循环来做到这一点,但我的问题是,是否有一种方法可以在没有循环的情况下做到这一点。可悲的是,我无法理解这样做的逻辑。

最佳答案

更新:使用 stringi 包中的 stri_extract_first,您可以:

library(stringi)
mydf$temp1 <- stri_extract_first(mydf$pagePath, regex='[^/]+')

给出:

> mydf
pagePath pageTitle pageviews temp1
1 /meine-inhalte/2 Übersichtsseite 4986 meine-inhalte
2 /mein-profil/1 MeinProfil 805 mein-profil
3 /meine-nachrichten MeineNachrichten 661 meine-nachrichten
4 /app.html Login 531 app.html
5 / Login 420 <NA>

旧答案:首先使用 gsub("^/","",mydf$pagePath) 删除第一个 "/",然后您可以使用 stingi 包中的 stri_split_fixed 函数来获取第一个元素:

library(stringi)
mydf$temp1 <- stri_split_fixed(gsub("^/","",mydf$pagePath), "/", n=1, tokens_only=TRUE)

给出:

> mydf
pagePath pageTitle pageviews temp1
1 /meine-inhalte/2 Übersichtsseite 4986 meine-inhalte
2 /mein-profil/1 MeinProfil 805 mein-profil
3 /meine-nachrichten MeineNachrichten 661 meine-nachrichten
4 /app.html Login 531 app.html
5 / Login 420

关于r - 在整个列的 data.frame 列中获取向量的第 n 个元素 - R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35621519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com