我有一个叫做数据的数据框.我想创建一个函数f(data,collist).此函数从数据本身获取数据和列列表,并仅返回数据中的那些行,其中collist中提到的列名称不是NA.我知道它可以使用for循环完成,但我想在不使用for循环的情况下完成它.
另外,如果R中通常更有效,以避免循环,请告诉我.
这是一个例子:
A B C D
1 2 NA NA
2 NA NA NA
NA 3 7 5
NA 4 2 NA
5 6 NA NA
Run Code Online (Sandbox Code Playgroud)
如果collist包含B和C,则将返回行号为1,3,4的简化数据帧.原因是B或C或两者在第2行和第5行都有NA.我想要一个函数,因为我将使用这个操作很多次.通过这个问题,我将学习一些新的R技巧,以及让我的整个程序更优雅.谢谢.
我一直在互联网上讨论,并且无法弄清楚如何应用car一系列列的重新编码值.
要重新编码单个列的值,我将运行如下命令:
df$dv_r <- recode(df$dv, "2=1;1=0;0=NA")
Run Code Online (Sandbox Code Playgroud)
然后,如果我想为整个data.frame执行此操作,我可以运行:
df_2 <- lapply(df, FUN = function(x) recode(x, "2=1;1=0;0=NA"))
Run Code Online (Sandbox Code Playgroud)
但是,我不确定如何为一系列列执行此操作 - 例如,在假设的data.table调用中df,如何重新编码列的值20:40?
谢谢!当然这对R专家来说非常容易.
我使用Eclipse进行android开发并尝试使用IntelliJ.我已经成功运行了一次应用程序.但现在,我似乎无法重建示例Hello World应用程序.我在这里错过了什么?R.java不再重建了.以下是错误的屏幕截图.

这是我的设定

可以fread从"data.table"强制成功使用"."作为sep值吗?
我正试图在"splitstackshape"中fread加速我的concat.split功能.请参见本要点对我采取的一般方法,以及这个问题我为什么要作出这样的转变.
我遇到的问题是将dot(".")视为一个值sep.每当我这样做时,我都会收到"意外字符"错误.
以下简化示例演示了此问题.
library(data.table)
y <- paste("192.168.1.", 1:10, sep = "")
x1 <- tempfile()
writeLines(y, x1)
fread(x1, sep = ".", header = FALSE)
# Error in fread(x1, sep = ".", header = FALSE) : Unexpected character (
# 192) ending field 2 of line 1
Run Code Online (Sandbox Code Playgroud)
我在当前函数中使用的解决方法是替换"."原始数据中希望不存在的另一个字符"|",但是这对我来说似乎有风险,因为我无法预测其他人的数据集中的内容.这是行动中的解决方法.
x2 <- tempfile()
z <- gsub(".", "|", y, fixed=TRUE)
writeLines(z, …Run Code Online (Sandbox Code Playgroud) 我对R还是比较新的,希望你能再次帮助我.我有一个长度为42000的字符向量.向量看起来像这样:
a <- c("blablabla-19960101T000000Z-1.tsv", "blablabla-19960101T000000Z-2.tsv", "blablabla-19960101T000000Z-3.tsv")
Run Code Online (Sandbox Code Playgroud)
我想将矢量分割成一个如下所示的数据框:
Name Date no
blablabla 1996-01-01 1
blablabla 1996-01-01 2
blablabla 1996-01-01 3
Run Code Online (Sandbox Code Playgroud)
我正在努力分裂和创建我的数据框.有人可以帮我弄这个吗?谢谢!
我再次观看了一场SICP讲座,其中Sussman演示了如何实施Scheme cons car并且只cdr使用procudures.
它是这样的:
(define (cons x y)
(lambda (m) (m x y)))
(define (car z)
(z (lambda (p q) p)))
Run Code Online (Sandbox Code Playgroud)
这让我思考; 令人兴奋的是数据结构?创建语言时,数据结构是作为程序构建的抽象实现的吗?如果它们只是由程序组成,那么最低级别的程序是什么?
我想我想知道的是抽象链底部的东西(除非它恰好是抽象的一直向下).它在什么时候变成了硬件?
我有这样一个数据框:
df <- structure(list(a = c(NA, NA, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L), b = c(NA, NA, NA, 1L, 2L, 3L, 4L, 5L, 6L, 7L), d = c(NA, NA, NA, NA, 1L, 2L, 3L, 4L, 5L, 6L)), .Names = c("a", "b", "d"), row.names = c(NA, -10L), class = "data.frame")
> df
a b d
1 NA NA NA
2 NA NA NA
3 1 NA NA
4 2 1 NA
5 3 2 1
6 4 3 2 …Run Code Online (Sandbox Code Playgroud) 对于其中2列可以使用plot(data$x,data$y)如下所示绘制绘图的数据框,我们如何在任意点处绘制切线x=25,然后找到与轴相切的x截距y=0?

df <- structure(list(x = c(40, 39.8, 39.5999999999999, 39.3999999999999,
39.1999999999998, 39, 38.8, 38.5999999999999, 38.3999999999999,
38.1999999999998, 38, 37.8, 37.5999999999999, 37.3999999999999,
37.1999999999998, 37, 36.8, 36.5999999999999, 36.3999999999999,
36.1999999999998, 36, 35.8, 35.5999999999999, 35.3999999999999,
35.1999999999998, 35, 34.8, 34.5999999999999, 34.3999999999999,
34.1999999999998, 34, 33.8, 33.5999999999999, 33.3999999999999,
33.1999999999998, 33, 32.8, 32.5999999999999, 32.3999999999999,
32.1999999999998, 32, 31.8, 31.5999999999999, 31.3999999999999,
31.1999999999998, 31, 30.8, 30.5999999999999, 30.3999999999999,
30.1999999999998, 30, 29.8, 29.5999999999999, 29.3999999999999,
29.1999999999998, 29, 28.8, 28.5999999999999, 28.3999999999999,
28.1999999999998, 28, 27.8, 27.5999999999999, 27.3999999999999,
27.1999999999998, 27, 26.8, 26.5999999999999, …Run Code Online (Sandbox Code Playgroud) 我有一个被称为因子的数据框 questions
q1 q2 q3
A A B
C A A
A B C
Run Code Online (Sandbox Code Playgroud)
我想重塑一下
question answer freq
1 A 2
1 B 0
1 C 1
2 A 2
2 B 1
2 C 0
3 A 1
3 B 1
3 C 1
Run Code Online (Sandbox Code Playgroud)
我觉得应该有一种方法可以用reshape2或plyr,但我无法理解.
相反,我做了以下事情:
tbl <- data.frame()
for(i in 1:dim(questions)[2]){
subtable <- cbind(question = rep(i, 3),
as.data.frame(table(questions[i])))
tbl <- rbind(tbl, subtable)
}
Run Code Online (Sandbox Code Playgroud)
是否有更清洁的方法来重塑这张桌子?
我想打印 2*2 混淆矩阵并标记它。我table()在 r 中使用。

我想添加预测和现实标签。任何人都可以建议我,我该怎么做?