小编eli*_*i-k的帖子

对数据框中组内的行进行编号

使用与此类似的数据框:

set.seed(100)  
df <- data.frame(cat = c(rep("aaa", 5), rep("bbb", 5), rep("ccc", 5)), val = runif(15))             
df <- df[order(df$cat, df$val), ]  
df  

   cat        val  
1  aaa 0.05638315  
2  aaa 0.25767250  
3  aaa 0.30776611  
4  aaa 0.46854928  
5  aaa 0.55232243  
6  bbb 0.17026205  
7  bbb 0.37032054  
8  bbb 0.48377074  
9  bbb 0.54655860  
10 bbb 0.81240262  
11 ccc 0.28035384  
12 ccc 0.39848790  
13 ccc 0.62499648  
14 ccc 0.76255108  
15 ccc 0.88216552 
Run Code Online (Sandbox Code Playgroud)

我想在每个组中添加一个带编号的列.这样做显然不是使用R的权力:

 df$num <- 1  
 for (i in 2:(length(df[,1]))) {  
   if (df[i,"cat"]==df[(i-1),"cat"]) { …
Run Code Online (Sandbox Code Playgroud)

r dataframe r-faq

136
推荐指数
6
解决办法
8万
查看次数

dplyr:"n()中的错误:不应该直接调用函数"

我试图重现dplyr包中的一个示例但是此错误消息.我期待看到以每种组合的频率产生的新列n.有人能告诉我我错过了什么吗?我三重检查包装是否已加载.一如既往地感谢您的帮助.

 library(dplyr)
# summarise peels off a single layer of grouping
by_vs_am <- group_by(mtcars, vs, am)

by_vs <- summarise(by_vs_am, n = n())
Run Code Online (Sandbox Code Playgroud)

n()出错:不应直接调用此函数

r function conflicting-libraries plyr dplyr

95
推荐指数
4
解决办法
6万
查看次数

从R写入Excel时处理java.lang.OutOfMemoryError

xlsx软件包可用于从R读取和写入Excel电子表格.不幸的是,即使对于中等大小的电子表格,java.lang.OutOfMemoryError也可能发生.特别是,

library(xlsx)
set.seed(19790801)
n_sheets <- 40
the_data <- replicate(
  n_sheets,
  {
    n_rows <- sample(2e5, 1)
    data.frame(
      x = runif(n_rows),
      y = sample(letters, n_rows, replace = TRUE)
    )
  },
  simplify = FALSE
)
names(the_data) <- paste("Sheet", seq_len(n_sheets))
Run Code Online (Sandbox Code Playgroud)

(其他相关的例外也是可能的,但更罕见.)

在阅读电子表格时,有人提出了类似的问题.

将大型xlsx文件导入R?

使用Excel电子表格作为CSV上的数据存储介质的主要优点是,您可以在同一文件中存储多个工作表,因此我们在此处考虑每个工作表要写入一个数据框的数据框列表.此示例数据集包含40个数据框,每个数据框具有两列,最多200k行.它设计得足够大,有问题,但你可以通过改变n_sheets和改变大小n_rows.

wb <- createWorkbook()  
for(i in seq_along(the_data))
{
  message("Creating sheet", i)
  sheet <- createSheet(wb, sheetName = names(the_data)[i])
  message("Adding data frame", i)
  addDataFrame(the_data[[i]], sheet)
}
saveWorkbook(wb, "test.xlsx")  
Run Code Online (Sandbox Code Playgroud)

将此文件写入文件的自然方法是使用创建工作簿createWorkbook,然后循环遍历每个数据框调用createSheetaddDataFrame.最后,可以使用工作簿将文件写入文件 …

r xlsx

78
推荐指数
2
解决办法
5万
查看次数

对data.frame或matrix中的行求和

我有一个非常大的数据框,其中行作为观察,列作为遗传标记.我想创建一个新列,其中包含使用R的每个观察的选定列数的总和.

如果我有200列和100行,我想创建一个包含100行的新列,其中列为43到167列.列有1或0.新列包含每列的总和排,我将能够对具有最多遗传标记的个体进行排序.

我觉得这很接近:

data$new=sum(data$[,43:167])
Run Code Online (Sandbox Code Playgroud)

r

62
推荐指数
4
解决办法
23万
查看次数

将SPSS文件读入R中

我正在尝试学习R并想要引入一个SPSS文件,我可以在SPSS中打开它.

我试过使用read.spssfrom foreignspss.getfrom Hmisc.两条错误消息都是相同的.

这是我的代码:

## install.packages("Hmisc")
library(foreign)

## change the working directory
getwd()
setwd('C:/Documents and Settings/BTIBERT/Desktop/')

## load in the file
## ?read.spss
asq <- read.spss('ASQ2010.sav', to.data.frame=T)
Run Code Online (Sandbox Code Playgroud)

由此产生的错误:

read.spss中的错误("ASQ2010.sav",to.data.frame = T):读取系统文件头的错误此外:警告消息:在read.spss("ASQ2010.sav",to.data.frame = T):ASQ2010.sav:位置0:字符`\ 000'(

此外,我尝试将SPSS文件保存为SPSS 7 .sav文件(之前使用的是SPSS 18).

警告消息:1:在read.spss("ASQ2010_test.sav",to.data.frame = T)中:ASQ2010_test.sav:系统文件2中遇到无法识别的记录类型7,子类型14:在read.spss中("ASQ2010_test. sav",to.data.frame = T):ASQ2010_test.sav:系统文件中遇到无法识别的记录类型7,子类型18

r spss

54
推荐指数
6
解决办法
8万
查看次数

〜的意思.(波浪点)论点?

~.R中参数的含义是什么?

例如 plot(~.,xyz..)

我已经看到这个论点在各种情况下多次使用,并且因为在谷歌上难以有意义地搜索符号,所以我几乎没有成功.

syntax r

52
推荐指数
1
解决办法
3万
查看次数

斯威夫特3:表达隐含地强加于'UIView?' 去任何

其他人必须在将iOS项目转换为Swift 3时(或之后)收到此消息,但是当我进行Google搜索时,我得不到相关结果.

无论如何,在转换为Swift 3后,我有大约30个警告说:

表达隐含地从'UIView?'强制执行 去任何

但警告并未指出任何特定的代码行.它们仅引用存在警告的类.
有没有人对这个警告有所了解,或者我如何对它们进行沉默?

xcode ios swift3

52
推荐指数
3
解决办法
2万
查看次数

循环遍历列并将字符串长度添加为新列

我有一个包含多个列的数据框,并希望为每个列输出一个单独的列,其中包含每行的长度.

我试图遍历列名称,并为每个列输出附加'_length'的相应列.

例如col1 | col2将转到col1 | col2 | col1_length | col2_length

我使用的代码是:

df <- data.frame(col1 = c("abc","abcd","a","abcdefg"),col2 = c("adf qqwe","d","e","f"))

for(i in names(df)){
  df$paste(i,'length',sep="_") <- str_length(df$i)
 }
Run Code Online (Sandbox Code Playgroud)

然而这引发了错误:

复杂赋值中的函数无效.

我能在R中以这种方式使用循环吗?

loops r

30
推荐指数
3
解决办法
10万
查看次数

如何获得所选列的平均值(平均值)

我想得到每行某些列的平均值.

我有这些数据:

w=c(5,6,7,8)
x=c(1,2,3,4)
y=c(1,2,3)
length(y)=4
z=data.frame(w,x,y)
Run Code Online (Sandbox Code Playgroud)

哪个回报:

  w x  y
1 5 1  1
2 6 2  2
3 7 3  3
4 8 4 NA
Run Code Online (Sandbox Code Playgroud)

我想得到某些列的意思,而不是所有列.我的问题是我的数据中有很多NA.所以如果我想要x和y的平均值,这就是我想要回来的:

  w x  y mean
1 5 1  1    1
2 6 2  2    2
3 7 3  3    3
4 8 4 NA    4
Run Code Online (Sandbox Code Playgroud)

我想我可以做类似的事情,z$mean=(z$x+z$y)/2但y的最后一行是NA,所以很明显我不想计算NA,我不应该除以2.我试过cumsum但当该行中有一个NA时返回NAs.我想我正在寻找能够添加所选列的内容,忽略NAs,获取没有NA的所选列的数量并除以该数字.我试过??意思和平均而且完全难倒.

ETA:还有一种方法可以为特定列添加权重吗?

r

24
推荐指数
3
解决办法
11万
查看次数

R堆积百分比条形图,包含二元因子和标签的百分比(使用ggplot)

我想生成一个看起来像这样的图形:

在此输入图像描述

我的原始数据集看起来像这样:

> bb[sample(nrow(bb), 20), ]
      IMG QUANT FIX
25663   1     1   0
7936    2     2   0
23586   3     2   0
23017   2     2   1
31363   1     3   1
7886    2     2   0
23819   3     3   1
29838   2     2   1
8169    2     3   1
9870    2     3   0
31440   2     1   0
35564   3     1   0
24066   1     2   0
12020   3     2   0
6742    3     2   0
6189    2     3   0
26692   2     3   0
1387    3     2 …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

21
推荐指数
1
解决办法
3万
查看次数

标签 统计

r ×9

conflicting-libraries ×1

dataframe ×1

dplyr ×1

function ×1

ggplot2 ×1

ios ×1

loops ×1

plyr ×1

r-faq ×1

spss ×1

swift3 ×1

syntax ×1

xcode ×1

xlsx ×1