在 R dplyr 中,为什么展开函数后有一个单引号?
In R dplyr, why there is a single quote after spread function?
我正在尝试使用 dplyr 展开函数将一列展开为多列。一旦传播,对该列的访问就有一个我想删除的单引号,因为它妨碍了我过滤数据框
以下是我的代码
# Create Test Frame
testframe = data.frame(name = c("foo-tt.0","bar-tt.0","dd-tt.0","tt-tt.0"),age=as.numeric(c(40,38,10,8)))
#Pivot using name
testframe_pivot <- testframe %>% spread(name,age)
我需要像下面这样访问框架
testframe_pivot$`bar-tt.0` ## I don't want these quotes
[1] 38
为什么我不能像(预期输出)
> testframe_pivot$bar-tt.0
[1] 38
相反我得到
> testframe_pivot$bar-tt.0
Error: object 'tt.0' not found
我知道这是因为字母和其他字符的混合,但不确定如何消除此错误
结果是..
>name_I_want = c("foo-tt.0")
>select_(testframe_pivot,.dot=name_I_want)
Error in .f(.x[[i]], ...) : object 'foo' not found
名称的问题是 -
符号。除非你摆脱它,否则你将无法使用没有反引号的 $
运算符。 base-R有两个选项:
要么将名称更正为 R 语法正确的名称。make.names
效果很好:
names(testframe_pivot) <- make.names(names(testframe_pivot))
testframe_pivot
# bar.tt.0 dd.tt.0 foo.tt.0 tt.tt.0
#1 38 10 40 8
或者您使用 [[
和字符串进行子集化:
testframe_pivot[['bar-tt.0']]
#[1] 38
我正在尝试使用 dplyr 展开函数将一列展开为多列。一旦传播,对该列的访问就有一个我想删除的单引号,因为它妨碍了我过滤数据框
以下是我的代码
# Create Test Frame
testframe = data.frame(name = c("foo-tt.0","bar-tt.0","dd-tt.0","tt-tt.0"),age=as.numeric(c(40,38,10,8)))
#Pivot using name
testframe_pivot <- testframe %>% spread(name,age)
我需要像下面这样访问框架
testframe_pivot$`bar-tt.0` ## I don't want these quotes
[1] 38
为什么我不能像(预期输出)
> testframe_pivot$bar-tt.0
[1] 38
相反我得到
> testframe_pivot$bar-tt.0
Error: object 'tt.0' not found
我知道这是因为字母和其他字符的混合,但不确定如何消除此错误
结果是..
>name_I_want = c("foo-tt.0")
>select_(testframe_pivot,.dot=name_I_want)
Error in .f(.x[[i]], ...) : object 'foo' not found
名称的问题是 -
符号。除非你摆脱它,否则你将无法使用没有反引号的 $
运算符。 base-R有两个选项:
要么将名称更正为 R 语法正确的名称。make.names
效果很好:
names(testframe_pivot) <- make.names(names(testframe_pivot))
testframe_pivot
# bar.tt.0 dd.tt.0 foo.tt.0 tt.tt.0
#1 38 10 40 8
或者您使用 [[
和字符串进行子集化:
testframe_pivot[['bar-tt.0']]
#[1] 38