小编wya*_*att的帖子

使用现有列(提取唯一值)将列添加到数据框

我是 R 新手,无法搜索我遇到的具体问题的答案。

如果我的数据框如下所示:

d <- data.frame(Name = c("Jon", "Jon", "Jon", "Kel", "Kel", "Kel", "Don", "Don", "Don"),
             No1 = c(1,2,3,1,1,1,3,3,3),
             No2 = c(1,1,1,2,2,2,3,3,3))

Name No1 No2
Jon   1   1
Jon   2   1
Jon   3   1
Kel   1   2
Kel   1   2
Kel   1   2
Don   3   3
Don   3   3
Don   3   3 
...
Run Code Online (Sandbox Code Playgroud)

我如何添加能够向数据帧添加新列,其中列将指示列中的唯一值,No1并且No2:对于约翰,凯利,这将是 (1,2,3), (1,2), (3) ,唐,分别

所以,如果新列被命名为ID#,期望的结果应该是

d2 <- data.frame(Name = c("Jon", "Jon", "Jon", "Kel", "Kel", "Kel", "Don", "Don", "Don"),
          No1 …
Run Code Online (Sandbox Code Playgroud)

r

4
推荐指数
1
解决办法
2611
查看次数

在 R 中保存 xml 节点

我对使用 R 和 xml 进行抓取非常陌生,我有一个关于保存和加载数据集的问题。

我使用如下代码抓取了一个相当大的数据集

data<-list()
for(i in page[1:10]){
  pages<-read_html(paste0("http://www.gbig.org/buildings/", i))
  nodes<-html_nodes(pages, '.badge-info .cert-badge , .event , 
.date , .media-heading a , .truncated , .location , .buildings-type')
 data[[i]]  <-nodes
}
Run Code Online (Sandbox Code Playgroud)

我以为我可以保存数据并再次加载以备将来使用

save(data, file="trials.RData")
Run Code Online (Sandbox Code Playgroud)

当我加载它并尝试再次使用它时,我收到一条错误消息。我做错了什么?保存和加载 xml 节点的最佳方法是什么?

{xml_nodeset (10)}
Error in node_write_character(x$node, options = options, encoding = encoding) : 
  external pointer is not valid
Run Code Online (Sandbox Code Playgroud)

编辑

我尝试的加载命令是:

load("trials.RData")
Run Code Online (Sandbox Code Playgroud)

谢谢

xml r rvest

2
推荐指数
1
解决办法
1207
查看次数

R使用data.table获取组的组合(用于输入igraph)

我有一个像这样的data.table:

dt<-data.table(group=(c(rep("A", 4), rep("B", 3), rep("C", 2))),
       individual=c("Ava", "Bill", "Claire", "Daniel", "Evelyn", "Francis", "Grant", "Helen", "Ig"))
Run Code Online (Sandbox Code Playgroud)

我想改变这样的事情:

dt2<-data.table(group=(c(rep("A", 6), rep("B", 3), rep("C", 1))), edge1=c("Ava", "Ava", "Ava", "Bill", "Bill", "Claire", "Evelyn", "Evelyn", "Francis", "Helen"), edge2=c("Bill", "Claire", "Daniel", "Claire", "Daniel", "Daniel", "Francis", "Grant", "Grant", "Ig"))
Run Code Online (Sandbox Code Playgroud)

基本上,第二个表的每一行在第一个表中采用"按组分组的两个人".整个想法是将数据输入igraph进行网络分析.如果有更好的解决方案用于此目的,我们非常欢迎.

r igraph data.table

1
推荐指数
2
解决办法
88
查看次数

标签 统计

r ×3

data.table ×1

igraph ×1

rvest ×1

xml ×1