社会网络分析论坛 social network analysis forum
标题: 整理关系列表的R代码,可供进一步生成.net文件 [打印本页]
作者: snachina 时间: 2017-7-27 16:09
标题: 整理关系列表的R代码,可供进一步生成.net文件
在数据处理中往往会碰到如下常见格式:
第一列为总称,后面多列都表示该总称名下各种细类。例如:
公交线路1 站点1 站点2 站点3 站点4
公交线路2 站点1 站点3 站点5 站点8
现提供一段R代码,可把这种短列表变成长列表:
公交线路1 站点1
公交线路1 站点2
公交线路1 站点3
公交线路1 站点4
公交线路2 站点1
公交线路2 站点3
公交线路2 站点5
公交线路2 站点8
###############################################################################
#输入列表sourceData,该列表的第一列为起点,第二列及之后所有列,都是终点。
#例如 A 甲 乙 丙 丁
# B 甲 戊 庚 壬
#经过上述转换后,显示为
#A 甲
#A 乙
#A 丙
#A 丁
#B 甲
#B 戊
#B 庚
#B 壬
#即从第一列指向之后的所有列。
#忽略其中的空字符串部分
#该结果可粘帖到.txt文本中,供txt2pajek.exe生成.net文件用
makeLineNet<-function(sourceData)
{
resultData<-list();
rn<-length(sourceData);
m<-1;
for(i in 1:rn)
{
cn<-length(sourceData[]);
for(j in 2:cn)
{
if(sourceData[][j]!="")
{
resultData[[m]]<-sourceData[][1];
resultData[[m]][2]<-sourceData[][j];
m<-m+1;
}
}
}
return(resultData);
}
###############################################################################
当然,还有一些reshape2或plyr这样的R包可以有函数进行上述转换。
转载本文请联系原作者获取授权,同时请注明本文来自林枫科学网博客。
链接地址:http://blog.sciencenet.cn/blog-792243-803818.html
[groupid=51]ucinet长沙学习群[/groupid]
欢迎光临 社会网络分析论坛 social network analysis forum (http://snachina.com/) |
Powered by Discuz! X3.3 |