赋值运算符=
和<-
R 之间有什么区别?
我知道运营商略有不同,如本例所示
x <- y <- 5
x = y = 5
x = y <- 5
x <- y = 5
# Error in (x <- y) = 5 : could not find function "<-<-"
Run Code Online (Sandbox Code Playgroud)
但这是唯一的区别吗?
我有一个大型数据集,我想阅读特定列或删除所有其他列.
data <- read.dta("file.dta")
Run Code Online (Sandbox Code Playgroud)
我选择了我不感兴趣的列:
var.out <- names(data)[!names(data) %in% c("iden", "name", "x_serv", "m_serv")]
Run Code Online (Sandbox Code Playgroud)
而且我想做的事情如下:
for(i in 1:length(var.out)) {
paste("data$", var.out[i], sep="") <- NULL
}
Run Code Online (Sandbox Code Playgroud)
删除所有不需要的列.这是最佳解决方案吗?
我导入了一个测试文件并尝试制作直方图
pichman <- read.csv(file="picman.txt", header=TRUE, sep="/t")
hist <- as.numeric(pichman$WS)
Run Code Online (Sandbox Code Playgroud)
但是,我从数据集中的值得到不同的数字.本来我以为这是因为我有文字,所以我删除了文字:
table(pichman$WS)
ws <- pichman$WS[pichman$WS!="Down" & pichman$WS!="NoData"]
Run Code Online (Sandbox Code Playgroud)
但是,我仍然得到很高的数字,有没有人有想法?
我需要将其data.frame
导出并导出为CSV文件(或其他内容,但CSV似乎是最简单的格式),因此我可以将其导入SQLite数据库.
但是,看起来write.csv()
我需要写一个标题行,而SQLite的.import
命令要求我没有标题行.所以这有点不匹配.
如果我尝试省略标题行,会发生以下情况:
> write.csv(mydf, "/tmp/mydf.csv", row.names=F, col.names=F)
Warning message:
In write.csv(mydf, "/tmp/mydf.csv", row.names = F, col.names = F) :
attempt to set 'col.names' ignored
Run Code Online (Sandbox Code Playgroud)
我想知道为什么它的执行,在第一个地方-手册上说"这些包装是故意不灵活.它们的设计,以确保正确的约定是用来写一个有效文件,试图改变append
,col.names
,sep
,dec
或者qmethod
被忽略,警告." 但我知道规范或其他需要列名的任何内容 - 事实上,大多数工具(Excel等)都没有特别对待它们.
我无法找到箱线图的线端点代表的描述.
例如,这里是线条结束的上方和下方的点值.
(我意识到盒子的顶部和底部分别是第25和第75百分位,中心线是第50个).我假设,因为线上方和下方有点,它们不代表最大/最小值.
我自学了python 2.7.我有使用BATCH的经验,它有一个GOTO语句.我怎么在python中做到这一点?例如,假设我想从第5行跳到第18行.
我意识到之前有关于这个主题的问题,但我没有发现它们足够的信息,或者在我目前的理解中python级别太高.
我想通过参数(stringsAsFactors=FALSE
),以rbind
在do.call
.但以下不起作用:
data <- do.call(rbind,
strsplit(readLines("/home/jianfezhang/adoption.txt"), split="\t#\t"),
args=list(stringsAsFactors=FALSE))
Run Code Online (Sandbox Code Playgroud) 在完成Dataframe中的一些操作后,我得到了一个结果数据帧.但索引未正确列出如下.
MsgType/Cxr NoOfMsgs AvgElpsdTime(ms)
161 AM 86 30.13
171 CM 1 104
18 CO 27 1244.81
19 US 23 1369.61
20 VK 2 245
21 VS 11 1273.82
112 fqa 78 1752.22
24 SN 78 1752.22
Run Code Online (Sandbox Code Playgroud)
我想得到如下结果.
MsgType/Cxr NoOfMsgs AvgElpsdTime(ms)
1 AM 86 30.13
2 CM 1 104
3 CO 27 1244.81
4 US 23 1369.61
5 VK 2 245
6 VS 11 1273.82
7 fqa 78 1752.22
8 SN 78 1752.22
Run Code Online (Sandbox Code Playgroud)
请指导我如何得到这个?
我正在尝试编写一个for循环,它将其值增加2.等效代码是c
for (i=0; i<=78; i=i+2)
Run Code Online (Sandbox Code Playgroud)
我如何在R中实现相同的目标?