> dput(veh)
structure(list(Time = c(138.6, 138.7, 138.8, 138.9, 139, 139.1,
139.2, 139.3, 139.4, 139.5, 139.6, 139.7, 139.8, 139.9, 140,
140.1, 140.2, 140.3, 140.4, 140.5, 140.6, 149.9, 150, 150.1,
150.2)), .Names = "Time", row.names = c(NA, -25L), class = c("tbl_df",
"tbl", "data.frame"))
我正在寻找time
变量的差异。当差异大于0.1
时,我希望将其标记为big
。以下是我尝试的:
library(dplyr)
veh %>%
mutate(diff_t = c(NA, diff(Time))) %>%
mutate(act = ifelse(diff_t>0.1, "BIG", "NA"))
# A tibble: 25 × 3
Time diff_t act
<dbl> <dbl> <chr>
1 138.6 NA <NA>
2 138.7 0.1 NA
3 138.8 0.1 BIG
4 138.9 0.1 NA
5 139.0 0.1 NA
6 139.1 0.1 NA
7 139.2 0.1 NA
8 139.3 0.1 BIG
9 139.4 0.1 NA
10 139.5 0.1 NA
# ... with 15 more rows
为什么0.1
在这里被标记为big
?
foo <- data.frame(a = c(1:5, 8))
foo %>%
mutate(diff_a = c(NA, diff(a))) %>%
mutate(act = ifelse(diff_a>1, "BIG", "NA"))
a diff_a act
1 1 NA <NA>
2 2 1 NA
3 3 1 NA
4 4 1 NA
5 5 1 NA
6 8 3 BIG
这些数字不完全等于0.1
。一种选择是循环
并尝试使用ifelse
veh %>%
mutate(diff_t = round(c(NA, diff(Time)),2),
act = ifelse(diff_t >= 0.1 & !is.na(diff_t), "BIG", NA))
这里是源代码 代码编译没有错误,但结果是这样的:
问题内容: 我正在创建一些类来处理各种类型的文件共享(nfs,afp,s3,本地磁盘)等中的文件名。当用户输入时,会得到一个标识数据源(即或)的字符串。 我从具有通用代码的基类中继承特定文件系统。我感到困惑的是对象创建。我有以下内容: 我以为这会很好用,但我读过的大多数文章都劝阻它。有没有更公认的方法来解决此问题? 问题答案: 我 不 认为用做你想要的东西是不正确的。换句话说,我不同意这个问题)的
我想在使用dplyr时动态创建变量名;不过,我也可以使用非DPLYR解决方案。 例如:
我有以下代码片段 我尝试运行应用程序时出现以下错误(部分) 似乎type="num "没有被处理。我怀疑年龄int也可能是一个问题,因为它是一个int,但需要一个string。从sting到int的反向转换也可能是一个问题。 任何帮助是值得赞赏的。 谢谢
问题内容: 我试图让到效果的,然后(在Windows 7; ñ 。一个透明安装了Cygwin所有X命令礼貌 ñ x的命令决心在命令行就好了)。 最初,我使用,但是想捕获stdout / stderr信息,所以我想使用,然后重写代码以使用它。但是,这破坏了一切。 重写的命令变为: 但是,运行此命令将产生以下错误: 重写的命令变为: 但是,运行此命令将产生以下错误: 如何使spawn运行可以正常使用的
我需要在我的项目中使用一个web服务。我使用NetBeans所以我右键单击我的项目并尝试添加一个新的“Web服务客户端”。上次我检查时,这是创建web服务客户机的方法。但它导致一个AssertionError,它说: java.lang.AssertionError:org.xml.sax.SAXParseException;systemid:jar:file:/path/to/glassfish