【发布时间】:2018-01-02 08:03:21
【问题描述】:
我无法将某些 R 代码的结果输出到数据框中,以便最终导出到 CSV。我对 R 很陌生,所以我不确定到底是什么错误。
我有这个输入数据集,叫做“ip_test”:
ip ip_end country_name region_name city_name
702388992 702388994 US West LA
然后我运行这段代码:
g = 1
ip = as.numeric(ip_test[g,1])
df <- for(g in 1:as.numeric(nrow(ip_test)))
{ for(ip in as.numeric(ip_test[g,1]):as.numeric(ip_test[g,2]))
{ print(cbind(ip_address=ip,
country_name = paste(ip_test[g,3], collapse=" "),
region_name = paste(ip_test[g,4], collapse=" "),
city_name = paste(ip_test[g,5], collapse=" ")))
}
}
这是输出这些结果:
ip_address country_name region_name city_name
[1,] "702388992" "US" "West" "LA"
ip_address country_name region_name city_name
[1,] "702388993" "US" "West" "LA"
ip_address country_name region_name city_name
[1,] "702388994" "US" "West" "LA"
我遇到的问题是数据框“df”没有填充任何数据,它仍然是“NULL(空)”。我不确定到底是什么问题,因为输出的数据是我想要的。我研究了矩阵与数据框的问题,输出上的 rbind,ldply,as.data.frame,R list to data frame。我遇到了同样的问题,即每一位代码都没有输出到数据帧。我在Multidimensional array into data frame 的 reshape2 库中尝试了“melt”函数,它创建了一个 1 列宽、11 行长、数字为 0-10 的数据框,并且出现此错误: “名称错误(对象)1 必须与向量 [0] 的长度相同"
我认为这是输出的基本内容,但我无法找出问题所在。任何帮助将不胜感激。
【问题讨论】:
-
对于你计算的每一行新行,你都需要它
rbind它到df。你能不能试一试... -
请显示一些数据,包括 ip_test 对象。
-
@cephalopod rbind 是要走的路,我只是不熟悉它。我没有意识到“print”和“rbind”之间的区别。
-
@Parfait 我不确定你指的是哪个数据,输入和输出数据集都是完整的。
标签: r csv matrix dataframe output