dze*_*zer 2 r social-networking
我需要加载社交网络数据,其中每个用户都有一个未知且可能有大量的朋友,存储为以下格式的文本文件:
UserId: FriendId1, FriendId2, ...
1: 12, 33
2:
3: 4, 6, 10, 15, 16
Run Code Online (Sandbox Code Playgroud)
到两列data.frame:
UserId FriendId
1 1 12
2 1 33
3 3 4
4 3 6
5 3 10
6 3 15
7 3 16
Run Code Online (Sandbox Code Playgroud)
你怎么会在R?
阅读,填充和重塑是低效的,因为它需要在内存中保留许多列NA.
如果你真的有冒号作为分隔符,那么只需使用read.tablewith header = FALSE将数据导入R,然后考虑使用cSplit我的"splitstackshape"包.
mydf <- read.table("test.txt", sep = ":", header = FALSE)
mydf
## V1 V2
## 1 1 12, 33
## 2 2
## 3 3 4, 6, 10, 15, 16
library(splitstackshape)
cSplit(mydf, "V2", ",", "long")
## V1 V2
## 1: 1 12
## 2: 1 33
## 3: 3 4
## 4: 3 6
## 5: 3 10
## 6: 3 15
## 7: 3 16
Run Code Online (Sandbox Code Playgroud)