具有40列的数据框:
几秒钟后执行
.site-header {
height: 500px; /* Make sure to set a height */
overflow: hidden;
position: relative;
width: 100%;
}
.site-header-content {
left: 0;
position: absolute;
top: 0;
width: 100%;
z-index: 10;
}
.site-header-bottom {
background: url('https://placeimg.com/640/480/any'); /* Your image */
background-attachment: fixed;
background-position: top;
background-repeat: no-repeat;
background-size: auto;
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 1;
}
这永远不会结束:
write.table(data_2[1:10000,], file = "/Volumes/2018/06_abteilungen/bi/analytics/tools/adobe/adobe_analytics/adobe_analytics_api_rohdaten/api_via_data_feed_auf_ftp/beispiel_datenexporte_data_feed/r_exporte/channel_va_closer.csv", sep = ";", col.names = NA)
如何仅提取2列而不会导致性能延迟?
答案 0 :(得分:3)
您可以使用[
来为数据帧设置子集,方法是为其指定行/列索引或行/列名称。例如:
dd = data.frame(col1 = rep(1:2, 5), col2 = c(rep(1:3, 3), 1), col3 = 'a')
dd
# col1 col2 col3
# 1 1 1 a
# 2 2 2 a
# 3 1 3 a
# 4 2 1 a
# 5 1 2 a
# 6 2 3 a
# 7 1 1 a
# 8 2 2 a
# 9 1 3 a
# 10 2 1 a
如果您想要前5行和前2列,则可以执行以下任一操作:
# good
dd[1:5, 1:2] # using column indices
dd[1:5, c("col1", "col2")] # using column names
但是您的问题是
# bad
dd[1:5, c(dd$col1, dd$col2)] # using actual values :(
您要什么列?好吧,dd$col1
是第一列值:1,2,1,2,...,dd$col2
是第二列值1,2,3,1,2,3 ...使用c()
您将它们粘在一起,因此我们可以将其扩展到
c(dd$col1, dd$col2) # these are the columns you are asking for
# [1] 1 2 1 2 1 2 1 2 1 2 1 2 3 1 2 3 1 2 3 1
# these are equivalent for this data
dd[1:5, c(dd$col1, dd$col2)]
dd[1:5, c(1,2,1,2,1,2,1,2,1,2,1,2,3,1,2,3,1,2,3,1)]
# col1 col2 col1.1 col2.1 col1.2 col2.2 col1.3 col2.3 col1.4 col2.4 col1.5 col2.5 col3 col1.6 col2.6 col3.1 col1.7 col2.7
# 1 1 1 1 1 1 1 1 1 1 1 1 1 a 1 1 a 1 1
# 2 2 2 2 2 2 2 2 2 2 2 2 2 a 2 2 a 2 2
# 3 1 3 1 3 1 3 1 3 1 3 1 3 a 1 3 a 1 3
# 4 2 1 2 1 2 1 2 1 2 1 2 1 a 2 1 a 2 1
# 5 1 2 1 2 1 2 1 2 1 2 1 2 a 1 2 a 1 2
# col3.2 col1.8
# 1 a 1
# 2 a 2
# 3 a 1
# 4 a 2
# 5 a 1
我们要求一次又一次地重复列,列数是原始数据中行数的两倍!我不知道您有多少行,它看起来超过了1000行,因此您不是在要求2列,而是要求超过2000列-也许更多。
两个脚注:
我第二次推荐data.table::fwrite
,这会更快。
作为一种调试技术,请不要忘记可以运行一些小的代码来找出问题所在。尝试
write.table(data_2[1:1000,c(data_2$va_closer_detail,data_2$va_closer_id)],
file = "/Volumes/2018/06_abteilungen/bi/analytics/tools/adobe/adobe_analytics/adobe_analytics_api_rohdaten/api_via_data_feed_auf_ftp/beispiel_datenexporte_data_feed/r_exporte/channel_va_closer.csv",
sep = ";", col.names = NA)
似乎不起作用,有两件事值得检查:(a)是文件路径有效,(b)是数据有效。如果您只是尝试运行该行的data_2[...]
部分,那么您将无需帮助就可以确定问题所在。
data_2[1:1000,c(data_2$va_closer_detail,data_2$va_closer_id)]
当您运行该程序并看到与预期不同的输出时,您再次运行了一行较小的代码,
c(data_2$va_closer_detail,data_2$va_closer_id)
希望问题已经解决