我有一个数据框df,第一列看起来像这样:
[1] "760–563" "01455–1" "4672–04" "11–31234" "22–12" "11111–53" "111–21" "17–356239" "14–22352" "531–353"
Run Code Online (Sandbox Code Playgroud)
我想拆分那一栏-.
我正在做的是
strsplit(df[,1], "-")
Run Code Online (Sandbox Code Playgroud)
问题是它无法正常工作.它返回一个列表而不拆分元素.我已经尝试添加参数fixed = TRUE并对参数进行常规表达split但没有任何效果.
奇怪的是,如果我自己复制专栏,例如:
myVector <- c("760–563" "01455–1" "4672–04" "11–31234" "22–12" "11111–53" "111–21" "17–356239" "14–22352" "531–353")
Run Code Online (Sandbox Code Playgroud)
然后应用它strsplit,它的工作原理.
我已经检查了我的列类型和类
class(df[,1])而且typeof(df[,1])两者都归还给我character,所以这很好.
我也使用dplyr的数据帧,所以它是类型tbl_df.我把它转换回来dataframe但也没有用.
也试过,apply(df, 2, function(x) strsplit(x, "-", fixed = T))但也没有工作.
有线索吗?
我不知道你是怎么做到的,但你有两种不同类型的破折号:
charToRaw(substr("760–563", 4, 4))
#[1] 96
charToRaw("-")
#[1] 2d
Run Code Online (Sandbox Code Playgroud)
所以strsplit()工作正常,只是原始数据中没有破折号.调整这个,离开你去:
strsplit("760–563", "–")
#[[1]]
#[1] "760" "563"
Run Code Online (Sandbox Code Playgroud)