小编Mat*_*rde的帖子

如何匹配与列名匹配的矢量?

绑定向量时,rbind不检查列名:

l = list(row1 = c(10, 20), row2 = c(20, 10))
names(l$row1) = c("A", "B")
names(l$row2) = c("B", "A")
l
$row1
 A  B 
10 20 

$row2
 B  A 
20 10 

rbind(l$row1, l$row2)
      A  B
[1,] 10 20
[2,] 20 10
Run Code Online (Sandbox Code Playgroud)

如何从多个列表元素生成此矩阵,确保列名在行间正确匹配:

      A  B
[1,] 10 20
[2,] 10 20
Run Code Online (Sandbox Code Playgroud)

r rbind

25
推荐指数
5
解决办法
3万
查看次数

as(x,'double')和as.double(x)不一致

x <- 1:10
str(x)
# int [1:10] 1 2 3 4 5 6 7 8 9 10
str(as.double(x))
# num [1:10] 1 2 3 4 5 6 7 8 9 10 
str(as(x, 'double'))
# int [1:10] 1 2 3 4 5 6 7 8 9 10
Run Code Online (Sandbox Code Playgroud)

如果R中有一个像类型转换那么基本的错误,我会感到惊讶.有这种不一致的原因吗?

r

23
推荐指数
1
解决办法
744
查看次数

如何根据特定顺序对字符向量进行排序?

我有一个看起来像的字符向量

c("white","white","blue","green","red","blue","red")
Run Code Online (Sandbox Code Playgroud)

和特定的顺序

c("red","white","blue","green")
Run Code Online (Sandbox Code Playgroud)

.我想根据第二个向量的顺序对第一个向量进行排序,以获得以下向量:c("red","red","white","white","blue","blue", "green").什么是最好的解决方案?

r

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

在Intranet中发布Rstudio Shiny App

我正在尝试构建一个Rstudio/Shiny App并将其发布到我们的Intranet中,以便我们办公室中的其他人都可以看到它.我是一个Windows家伙,网上有关如何在Linux环境中设置闪亮服务器的说明对我来说有点困难.有没有一种简单的方法可以在不搞乱Linux的情况下实现这一目标.即使我必须这样做,有一种简单的方法可以让我的网页可供我们公司内的人使用,而不是互联网上的每个人.谢谢!

r rstudio shiny shiny-server

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

对数据子集进行geom_smooth

这是一些数据和情节:

set.seed(18)
data = data.frame(y=c(rep(0:1,3),rnorm(18,mean=0.5,sd=0.1)),colour=rep(1:2,12),x=rep(1:4,each=6))

ggplot(data,aes(x=x,y=y,colour=factor(colour)))+geom_point()+ geom_smooth(method='lm',formula=y~x,se=F)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如您所见,线性回归受x = 1的值的影响很大.我可以获得针对x> = 2计算的线性回归,但显示x = 1的值(y等于0或1).除线性回归外,结果图将完全相同.他们不会"受"这些值对abscisse = 1的影响

regression r subset ggplot2

11
推荐指数
2
解决办法
1万
查看次数

加载,分离,重新加载异常

我正在附加,分离和重新附加RODBCdata.table.当我按此顺序使用这些包执行此过程时,我收到以下错误:

Error : .onLoad failed in loadNamespace() for 'data.table', details:
  call: address(x)
  error: object 'Caddress' not found
Run Code Online (Sandbox Code Playgroud)

我正在使用这些软件包的最新版本.这是我的初始会话信息:

R version 3.1.0 (2014-04-10)
Platform: i386-w64-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base    
Run Code Online (Sandbox Code Playgroud)

pkgs <- c('RODBC', 'data.table') # Note, c('data.table', 'RODBC') will work
for (pkg in pkgs) library(pkg, character.only=TRUE)
for (pkg in paste0('package:', pkgs)) detach(pkg, unload=TRUE, character.only=TRUE)
for (pkg …
Run Code Online (Sandbox Code Playgroud)

r rodbc data.table

10
推荐指数
1
解决办法
418
查看次数

使用dplyr :: rename()处理列名中的空格和"怪异"字符

我有像这样困难标题的表:

  Subject  Cat Nbr  Title       Instruction..Mode!
1 XYZ      101      Intro I     ONLINE
2 XYZ      102      Intro II    CAMPUS
3 XYZ      135      Advanced    CAMPUS
Run Code Online (Sandbox Code Playgroud)

我想重命名列 dplyr::rename()

df %>%
 rename(subject = Subject, 
        code = Cat Nbr, 
        title = title, 
        mode = Instruction..Mode!)
Run Code Online (Sandbox Code Playgroud)

但我得到了一个 Error: unexpected symbol in:

我怎么能和解这个?

r dplyr

9
推荐指数
1
解决办法
4683
查看次数

根据列值r更改行中的值

我是R的新手,有一个相当简单的问题,我无法弄清楚答案.对于我的示例,我将使用具有3列的数据框,但我的实际数据集是139列,10000行.

如果C列中同一行中的值包含值<10,我想用NA替换给定行中的所有值.

假设我的所有列都是数字或整数值.

所以我想采取数据框:

x=data.frame(c(5,9,2),c(3,4,6),c(12,9,11))
names(x)=c("A","B","C")
Run Code Online (Sandbox Code Playgroud)

并用NA替换第2行来创建

y=data.frame(c(5,"NA",2),c(3,"NA",6),c(12,"NA",11))
names(y)=c("A","B","C")
Run Code Online (Sandbox Code Playgroud)

谢谢!

replace r dataframe

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

将包含日文字符的csv文件读入R中

我正在努力让R读取一个csv文件,其中一些列标准英文字符,一些数字和一些日文字符字段.这是数据的样子:

category,desc,otherdesc,volume
UPC - 31401 Age Itameabura,???????????,OIL_OTHERS_SML_ECO,83.0
UPC - 31401 Age Itameabura,???????,OIL_OTHERS_MED,137.0
UPC - 31401 Age Itameabura,????????,OIL_CANOLA_OTHERS_LRG,3026.0 
Run Code Online (Sandbox Code Playgroud)

将R的语言设置为英语,将日语字符转换为一些乱码.当我将R中的语言设置更改为日语时Sys.setlocale("LC_CTYPE", "japanese"),我看到文件根本没有被读入.R给出错误说:

make.names出错(col.names,unique = TRUE):'サ类'中的多字节字符串无效

我不知道我的csv文件或标题名称有什么问题.您能否指导我如何将此csv文件读入R中,以便所有内容都像在csv文件中一样显示?

谢谢!Vish

csv locale r multibyte

7
推荐指数
1
解决办法
2949
查看次数

使用R将坐标表转换为形状文件

我在UTM区域48中有一个点坐标数据集.

  x           y       
615028.3  2261614    
615016.3  2261635    
614994.4  2261652    
Run Code Online (Sandbox Code Playgroud)

CSV文件在这里.

我想加载CSV并使用R创建shapefile.我的代码是:

library(maptools)
library(rgdal)
library(sp)

    UTMcoor=read.csv(file="https://dl.dropboxusercontent.com/u/549234/s1.csv")
    coordinates(UTMcoor)=~X+Y
    proj4string(UTMcoor)=CRS("++proj=utm +zone=48") # set it to UTM
    LLcoor<-spTransform(UTMcoor,CRS("+proj=longlat")) #set it to Lat Long
    plot(LLcoor)
    points(LLcoor$X,LLcoor$Y,pch=19,col="blue",cex=0.8) #to test if coordinate can be plot as point map
    writeOGR(UTMcoor, dsn="c:/todel" ,layer="tsb",driver="ESRI Shapefile")
    writeSpatialShape("LLcoor","test")
Run Code Online (Sandbox Code Playgroud)

在最后一个命令(writeSpatialShape)中,R给出以下错误:

Error in writeSpatialShape("LL2", "test") : 
  x is acharacterobject, not a compatible Spatial*DataFrame
Run Code Online (Sandbox Code Playgroud)

当我从控制台读取LLcoor时,它似乎已经是一个Spatial DataFrame.使用writeOGR(RGdal包)编写形状文件也会产生类似的错误.任何提示都非常感谢.

r shapefile

6
推荐指数
1
解决办法
9867
查看次数