我是 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 和 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)
谢谢
我有一个像这样的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进行网络分析.如果有更好的解决方案用于此目的,我们非常欢迎.