这是一个示例数据集:
sample1 <- data.frame(Names=letters[1:10], Values=sample(seq(0.1,1,0.1)))
Run Code Online (Sandbox Code Playgroud)
当我重新排序数据集时,我正在丢失行名称顺序
sample1[order(sample1$Values), ]
Names Values
7 g 0.1
4 d 0.2
3 c 0.3
9 i 0.4
10 j 0.5
5 e 0.6
8 h 0.7
6 f 0.8
1 a 0.9
2 b 1.0
Run Code Online (Sandbox Code Playgroud)
期望的输出:
Names Values
1 g 0.1
2 d 0.2
3 c 0.3
4 i 0.4
5 j 0.5
6 e 0.6
7 h 0.7
8 f 0.8
9 a 0.9
10 b 1.0
Run Code Online (Sandbox Code Playgroud) 我在R中寻找一个等同于这个SQL语句的命令.我希望这是一个非常简单的基本解决方案,而不使用复杂的函数或dplyr类型的包.
Select count(*) as number_of_states
from myTable
where sCode = "CA"
Run Code Online (Sandbox Code Playgroud)
所以基本上我会计算与我的where条件相匹配的行数.
我已经将一个csv文件作为数据框导入mydata.到目前为止,我已经尝试过这些无效.
nrow(mydata$sCode == "CA") ## ==>> returns NULL
sum(mydata[mydata$sCode == 'CA',], na.rm=T) ## ==>> gives Error in FUN(X[[1L]], ...) : only defined on a data frame with all numeric variables
sum(subset(mydata, sCode='CA', select=c(sCode)), na.rm=T) ## ==>> FUN(X[[1L]], ...) : only defined on a data frame with all numeric variables
sum(mydata$sCode == "CA", na.rm=T) ## ==>> returns count of all rows in the entire data set, which is not …
在测试我的代码时,我发现了以下内容:如果我将data.table分配DT1
给DT
并在DT
之后进行DT1
更改,则使用它进行更改.所以DT
,DT1
似乎是内部联系的.这是预期的行为吗?虽然我不是编程专家,但这对我来说是错误的,并且用简单的R变量或a来测试它data.frame
,我无法重现这种行为.这里发生了什么事?
DF <- data.frame(ID=letters[1:5],
value=1:5)
DF1 <- DF
all.equal(DF1, DF)
[1] TRUE
DF[1, "value"] <- DF[1, "value"]*2
all.equal(DF1, DF)
[1] "Component 2: Mean relative difference: 1"
library(data.table)
data.table 1.7.1 For help type: help("data.table")
DT <- data.table(ID=letters[1:5],
value=1:5)
DT1 <- DT
all.equal(DT1, DT)
[1] TRUE
DT[, value:=value*2]
ID value
[1,] a 2
[2,] b 4
[3,] c 6
[4,] d 8
[5,] e 10
all.equal(DT1, DT)
[1] …
Run Code Online (Sandbox Code Playgroud) 我正在使用大型数据框,并且已经遇到RAM限制.此时,我可能需要在磁盘上使用序列化版本.有一些软件包支持内存不足的操作,但我不确定哪一个适合我的需求.我宁愿将所有内容保存在数据框中,因此ff
包看起来很令人鼓舞,但仍然存在兼容性问题,我无法解决.
当您意识到数据已经达到内存不足时,第一个可以实现的工具是什么?
考虑以下:
df <- data.frame(a = 1, b = 2, c = 3)
names(df[1]) <- "d" ## First method
## a b c
##1 1 2 3
names(df)[1] <- "d" ## Second method
## d b c
##1 1 2 3
Run Code Online (Sandbox Code Playgroud)
这两种方法都没有返回错误,但第一次没有更改列名,而第二次没有.
我认为它与我只在一个子集上运行的事实有关df
,但为什么,例如,以下工作正常呢?
df[1] <- 2
## a b c
##1 2 2 3
Run Code Online (Sandbox Code Playgroud) 假设我有一个像
"Hi, this is a good time to start working together.".
Run Code Online (Sandbox Code Playgroud)
我只想拥有
" Hi, this is a good time to start working together."
Run Code Online (Sandbox Code Playgroud)
两个单词之间只有一个空格.我应该怎么做R?
基本上我想要这样做:pdb文件包含源文件的位置(例如C:\dev\proj1\helloworld.cs
).是否可以修改该pdb文件以使其包含不同的位置(例如\more\differenter\location\proj1\helloworld.cs
)?
我想看看,如果"001"
还是"100"
还是"000"
在4个字符的字符串发生0
和1
.例如,4个字符的字符串可以是"1100"
或"0010"
或"1001"
或"1111"
.如何使用单个命令匹配字符串中的许多字符串?
我知道grep可以用于模式匹配,但是使用grep,我一次只能检查一个字符串.我想知道多个字符串是否可以与其他命令一起使用或者与grep本身一起使用.
我有一个"日期"向量,其中包含以mm/dd/yyyy格式表示的日期:
head(Entered_Date,5)
[1] 1/5/1998 1/5/1998 1/5/1998 1/5/1998 1/5/1998
Run Code Online (Sandbox Code Playgroud)
我试图根据日期绘制频率变量,但我想按月或年分组日期.就像现在一样,每天有一个频率,但我想按月或年绘制频率.因此,对于1/5/1998,1为1/7/1998和3为1/8/1998,频率为1,我想将其显示为1为1/1998.这是一个相对较大的数据集,从1998年到现在的日期,我想找到一些自动化的方法来实现这一目标.
> dput(head(Entered_Date))
structure(c(260L, 260L, 260L, 260L, 260L, 260L), .Label = c("1/1/1998",
"1/1/1999", "1/1/2001", "1/1/2002", "1/10/2000", "1/10/2001",
"1/10/2002", "1/10/2003", "1/10/2005", "1/10/2006", "1/10/2007",
"1/10/2008", "1/10/2011", "1/10/2012", "1/10/2013", "1/11/1999",
"1/11/2000", "1/11/2001", "1/11/2002", "1/11/2005", "1/11/2006",
"1/11/2008", "1/11/2010", "1/11/2011", "1/11/2012", "1/11/2013",
"1/12/1998", "1/12/1999", "1/12/2001", "1/12/2004", "1/12/2005", ...
Run Code Online (Sandbox Code Playgroud) 如何在不使用not命令的情况下查明列表是否为空?
这是我尝试过的:
if list3[0] == []:
print "No matches found"
else:
print list3
Run Code Online (Sandbox Code Playgroud)
我是一个初学者,所以如果我犯了愚蠢的错误,请原谅.