I have this DF
email date user_ipaddress other data
1 [email protected] 2020-03-24 177.95.75.230 xxxx
2 [email protected] 2020-04-02 177.139.49.93 yyyy
3 [email protected] 2020-04-02 177.139.49.93 zzzz
and I want to transform this data to the shape it is going to be stored
the whole problem would be a big data frame with distinct emails and I want to reduce all data for each email in a single row like so
email date user_ipaddress other data
1 [email protected] 2020-04-02 c('177.95.75.230','177.139.49.93') c('xxxx','yyyy','zzzz')
actually, if someone could help me only with the case that there is only one email address it would save my life but feel free to help with the whole problem
using
ipadreessVec<-Reduce(append,x =df$network_userid)
I can get my vector c('177.95.75.230','177.139.49.93')
but if i try to make
newdf$network_userid<-a
I get
Error in `$<-.data.frame`(`*tmp*`, network_userid, value = c("20562206-f557-48a3-861b-5d1e18524bbb", :
replacement has 3 rows, data has 1
any answer that makes me go a step further will get a approve even if it does not solve everything.
We can create a list
column grouped by 'email', 'date'
library(dplyr)
DF %>%
group_by(email, date) %>%
summarise_all(list)
# A tibble: 2 x 4
# Groups: email [1]
# email date user_ipaddress otherdata
# <chr> <chr> <list> <list>
#1 [email protected] 2020-03-24 <chr [1]> <chr [1]>
#2 [email protected] 2020-04-02 <chr [2]> <chr [2]>
Or in the devel
version use across
with summarise
DF %>%
group_by(email, date) %>%
summarise(across(everything(), list))
# A tibble: 2 x 4
# Groups: email [1]
# email date user_ipaddress otherdata
# <chr> <chr> <list> <list>
#1 [email protected] 2020-03-24 <chr [1]> <chr [1]>
#2 [email protected] 2020-04-02 <chr [2]> <chr [2]>
DF <- structure(list(email = c("[email protected]", "[email protected]", "[email protected]"
), date = c("2020-03-24", "2020-04-02", "2020-04-02"),
user_ipaddress = c("177.95.75.230",
"177.139.49.93", "177.139.49.93"),
otherdata = c("xxxx", "yyyy",
"zzzz")), class = "data.frame", row.names = c("1", "2", "3"))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With