我正在尝试从github读取一个CSV到R:
latent.growth.data <- read.csv("https://github.com/aronlindberg/latent_growth_classes/blob/master/LGC_data.csv")
Run Code Online (Sandbox Code Playgroud)
但是,这给了我:
Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") : unsupported URL scheme
Run Code Online (Sandbox Code Playgroud)
我试过?read.csv
,?download.file
,getURL
(只有返回奇怪的HTML),以及在数据导入手册,但仍然无法知道如何使它发挥作用.
我究竟做错了什么?
我有一个这种结构的巨大日志文件:
"timestamp":{"标识符":值}
"1463403600":{"AA":74.42},
"1463403601":{"AA":29.55},
"1463403603":{"AA":24.78},
"1463403604":{"AA":8.46},
"1463403605":{"AA":44.84},
"1463403607":{"AA":87.05},
"1463403608":{"AA":54.81},
"1463403609":{"AA":93.1},
"1463403611":{"AA":77.64},
"1463403612":{"AA":33.39},
"1463403613":{"AA":69.2},
Run Code Online (Sandbox Code Playgroud)
我想在(!)给定的时间戳后提取内容,如:
std::ifstream * myfunc( uint32_t timestamp)
Run Code Online (Sandbox Code Playgroud)
例:
myfunc(1463403611);
/* returns
"1463403611":{"AA":77.64},
"1463403612":{"AA":33.39},
"1463403613":{"AA":69.2},
*/
Run Code Online (Sandbox Code Playgroud)
日志文件很长 - 太长而无法将其保留在内存中.代码将在资源有限的嵌入式设备(80Mhz,~10kB可用内存)上运行,因此我正在寻找一些有效解决方案的想法.
日志文件可能有500k +条目,并且在99%的时间内,时间戳将在最后100行中,因此从文件的beginnig开始并检查每一行的正确时间戳将是非常低效的.
所以我想我正在寻找一个解决方案来逐行读取文件.我没有真正的解决方案如何在不将大块加载到内存中的情况下提高效率.
我尝试从EOF开始阅读200字节的块,但是面对这个问题,在很多情况下,块会将时间戳减少一半.我试图检测到并在需要时重新选择一些字节,但感觉必须有一个聪明的解决方案.
为了复制,我喜欢为每个数据帧保留一个包含元数据的码本.数据码本是:
书面或计算机化列表,提供将包含在数据库中的变量的清晰而全面的描述. Marczyk等(2010)
我想记录变量的以下属性:
- 名称
- 描述(标签,格式,比例等)
- 来源(例如世界银行)
- 源媒体(访问的网址和日期,CD和ISBN,或其他)
- 磁盘上源数据的文件名(合并代码簿时有帮助)
- 笔记
例如,这是我实现的用于记录数据框mydata1中具有8个变量的变量:
code.book.mydata1 <- data.frame(variable.name=c(names(mydata1)),
label=c("Label 1",
"State name",
"Personal identifier",
"Income per capita, thousand of US$, constant year 2000 prices",
"Unique id",
"Calendar year",
"blah",
"bah"),
source=rep("unknown",length(mydata1)),
source_media=rep("unknown",length(mydata1)),
filename = rep("unknown",length(mydata1)),
notes = rep("unknown",length(mydata1))
)
Run Code Online (Sandbox Code Playgroud)
我为我读过的每个数据集写了一个不同的代码簿.当我合并数据帧时,我还将合并其相关代码簿的相关方面,以记录最终数据库.我这样做主要是复制粘贴上面的代码并更改参数.
我有一个由我的控制之外的进程生成的大型data.frame,它可能包含也可能不包含方差为零的变量(即所有观察结果都相同).我想基于这些数据建立一个预测模型,显然这些变量是没用的.
这是我目前用来从data.frame中删除这些变量的函数.它目前基于apply
,我想知道是否有任何明显的方法来加速这个功能,以便它可以在非常大的数据集上快速工作,具有大量(400或500)变量?
set.seed(1)
dat <- data.frame(
A=factor(rep("X",10),levels=c('X','Y')),
B=round(runif(10)*10),
C=rep(10,10),
D=c(rep(10,9),1),
E=factor(rep("A",10)),
F=factor(rep(c("I","J"),5)),
G=c(rep(10,9),NA)
)
zeroVar <- function(data, useNA = 'ifany') {
out <- apply(data, 2, function(x) {length(table(x, useNA = useNA))})
which(out==1)
}
Run Code Online (Sandbox Code Playgroud)
以下是该过程的结果:
> dat
A B C D E F G
1 X 3 10 10 A I 10
2 X 4 10 10 A J 10
3 X 6 10 10 A I 10
4 X 9 10 10 A J 10
5 X 2 10 …
Run Code Online (Sandbox Code Playgroud) 我一直在寻找一篇文章,解释NSCoding(NSKeyedArchiver ...)使用CoreData(SQLite ....)的优缺点.
有很多的选择,我可以实现自己的自定义二进制读/写器,或使用的Plist/XML/JSON ...或使用SQLite或NSCoding.
我现在有点迷失了.任何机构都可以解释MAIN功能之间的区别吗?
我有一个Realm Object建模如此
class WorkoutSet: Object {
// Schema 0
dynamic var exerciseName: String = ""
dynamic var reps: Int = 0
// Schema 0 + 1
dynamic var setCount: Int = 0
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试执行迁移.
在我的AppDelegate
导入内RealmSwift
.
在didFinishLaunchWithOptions
我调用的函数内
Migrations().checkSchema()
Run Code Online (Sandbox Code Playgroud)
迁移是在另一个文件中声明的类.
在该文件中有一个声明为这样的结构.
func checkSchema() {
Realm.Configuration(
// Set the new schema version. This must be greater than the previously used
// version (if you've never set a schema version before, the version is 0).
schemaVersion: 1, …
Run Code Online (Sandbox Code Playgroud) 我有一个非常大(在Excel中打开太大)生物数据集,看起来像这样
year <- c(1990, 1980, 1985, 1980, 1990, 1990, 1980, 1985, 1985,1990,
1980, 1985, 1980, 1990, 1990, 1980, 1985, 1985,
1990, 1980, 1985, 1980, 1990, 1990, 1980, 1985, 1985)
species <- c('A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'A','A', 'A',
'B', 'B', 'B', 'C', 'C', 'C', 'A', 'A', 'A', 'B', 'B', 'B',
'C', 'C', 'C', 'A')
region <- c(1, 1, 1, 3, 2, 3, 3, 2, 1, 1, 3, 3, 3, 2, 2, 1, 1, 1,1, 3, 3,
3, …
Run Code Online (Sandbox Code Playgroud) 我的问题围绕着一个单一点 - 移动应用程序中的数据管理.我创建了一个移动应用程序,其中数据来自服务器.数据包括文本和图像.以下是我为此所做的步骤:
首次启动:
1.获取服务器数据.
2.在Sqlite数据库中保存服务器数据.
3.显示Sqlite数据.接下来启动:
1.显示Sqlite数据.
2.在后台获取服务器数据.
3.删除以前的Sqlite数据.
4.在Sqlite数据库中保存新的服务器数据.
5.显示Sqlite数据.
关于这些步骤我有几个问题:
1.这是正确的方法吗?其他方式可能是每次从服务器显示数据,但不会立即在屏幕上显示数据(取决于互联网速度).
我还想过将Sqlite
数据与新的服务器数据进行比较.但面临着巨大的挑战.新服务器数据可能具有新记录或已删除记录.另外,我找不到合适的方法来比较每个数据库字段和JSON
数据.
那么将本地Sqlite
数据与新服务器数据进行比较的最佳方法是什么?
3.每次我删除Sqlite
数据并插入新数据然后刷新屏幕(有a UITableView
)时,它会闪烁一秒钟,这很明显.如果遵循步骤3,4,5,如何避免此问题?
4. 如果我每次或当应用程序变为活动状态时返回屏幕,我应该如何进行数据更新?我非常了解NSOperationQueues
或使用GCD
此事.但是如果我疯了又一次又一次地来回屏幕怎么办?NSOperations
队列中会有一些.
我有一个这样的数据框:
id y1 y2 y3 y4
--+--+--+--+--
a |12|13|14|
b |12|18| |
c |13| | |
d |13|14|15|16
Run Code Online (Sandbox Code Playgroud)
我想以这样的方式重塑,我以两列结束.以上示例将变为:
id from to
--+----+---
a |12 |13
a |13 |14
a |14 |
b |12 |18
b |18 |
c |13 |
d |13 |14
d |14 |15
d |15 |16
Run Code Online (Sandbox Code Playgroud)
每个id
年份都有一个'from'和'to'.
有人知道一个简单的方法吗?我试过用reshape2
.我还看了将多列合并到整洁的数据中,但我认为我的情况有所不同.
我想学习Depth中的数据库系统实现.是否有一个用于教育目的的开源简单数据库实现,我可以通过代码?就像有很多操作系统实现(Minix,Pintos ......).我想知道是否有类似的数据库教育系统.
我读了几本教科书,主要关注理论和概念.
非常感谢!阿尔弗雷德